2010-10-11 4 views
4

J'ai une demande 2.3.9 rails que je migration vers des rails 3.comment passer des chaînes de html_safe à js rendent partials

Comme presque tout le monde, je vais avoir un problème de rendu des chaînes, spécialement des scripts qui JQUERY étaient en ligne. Avant, quelqu'un me dit que dans les rails 3, ça a changé, je ne peux pas réécrire tous mes scripts maintenant. Je vais le faire, il sera prévu, mais pour l'instant, je veux que ça marche.

Aller à ma question:

j'ai un contrôleur avec la pièce de code suivante

respond_to do |format| 
format.js { render :partial=>'update'} 
format.html { head 406 } 
end 

Mon _update.js.erb a un mélange entre JS et ERB:

<% if MyClass.count > 0 %> 
$('.show_object:visible').hide(); 
<%else%> 
    if($('.show_object').css('display') == 'none'){ 
    $('.show_object').blink({times: 7}) 
    } 
<%end%> 

Il fonctionne dans les rails 2.3.9, mais pas dans Rails 3. Ma question sont:

  • devrais-je mettre autour de tous mes jquery un appel html_safe?
  • Il y a un moyen dans le contrôleur de marquer un partiel comme html_safe?
+0

Votre sortie partielle est-elle réellement échappée au format HTML? – Jacob

+0

oui. Et ce n'est pas html_safe. Je l'ai résolu comme je l'ai expliqué dans ma propre réponse (voir ci-dessous) –

Répondre

2

J'ai résolu le faire dans mon contrôleur:

format.js { 
render :js=> { render_to_string(:partial=>'update').html_safe!} 
} 

il fonctionne mais ne semble pas être une bonne solution. Une autre idée?

Questions connexes