Rails 3の使用:update.js.erbファイルで、多くのことを繰り返していることがわかりました。だから私はそれをすべてヘルパーに入れようとしました。しかし、ヘルパーにクリーンなJavaScriptを返してもらうのに問題があります。「」\"
の代わりにどこにでも入れます
これが私が始めたものです:
<% 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.
上記のJavaScriptを生成するために私が書いたヘルパーは次のとおりです。
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
私はそれを次のように呼びます:
<%= toggelButtonState( @list , 'show_today', 'orange' ) %>
そして、これが私が応答で得るものです:
$(\"#show_today_check_2\").removeClass(\"orange\").addClass(\"gray\").attr(\"value\",\"1\");
今、私はヘルパーのストレートhtmlで同様の問題に気づきました。山かっこで囲んだものを返すことはできません。しかし、それから私はcontent_tagについて知りました。javascriptに似たものはありますか?どうすればsを取り除くことができ\"
ますか?