Utilisation de Rails 3: Dans mon fichier update.js.erb, j'ai trouvé que je répétais beaucoup de choses. J'ai donc essayé de tout mettre dans une aide. Mais j'ai du mal à obtenir l'aide de rendre le javascript propre. Il met en \"
partout au lieu de "comment retourner le javascript propre à partir d'une aide personnalisée de rails3?
Voici ce que j'ai commencé avec:
<% if @list.show_today %>
$("#show_today_check_<%= @list.id %>").removeClass("gray").addClass("orange").attr("value","0");
<% else %>
$("#show_today_check_<%= @list.id %>").removeClass("orange").addClass("gray").attr("value","1");
<% end %>
<% if @list.show_inventory %>
$("#show_inventory_check_<%= @list.id %>").removeClass("gray").addClass("white").attr("value","0");
<% else %>
$("#show_inventory_check_<%= @list.id %>").removeClass("white").addClass("gray").attr("value","1");
<% end %>
etc.
est ici l'aide que j'ai écrit pour générer le javascript ci-dessus:
def toggelButtonState(object, name, color)
if object.send(name)
@add_col = color
@rem_col = 'gray'
@value = "0"
else
@add_col = 'gray'
@rem_col = color
@value = "1"
end
js = '$("#'
js += "#{name}_check_#{@list.id}"
js += '").removeClass("'
js += @rem_col
js += '").addClass("'
js += @add_col
js += '").attr("value","'
js += @value
js += '");'
end
Je l'appelle avec:
<%= toggelButtonState(@list , 'show_today', 'orange') %>
Et voici ce que je g et dans la réponse:
$(\"#show_today_check_2\").removeClass(\"orange\").addClass(\"gray\").attr(\"value\",\"1\");
Maintenant, j'ai remarqué un problème similaire avec html droit dans les aides. Il ne me laisserait pas retourner les choses entre crochets. Mais ensuite j'ai découvert content_tag. Y a-t-il quelque chose de similaire pour javascript? Comment puis-je me débarrasser de la \"
s?
merci! Je vais creuser ce code et l'essayer. –