转义javascript不适用于link_to_function(rails)

时间:2010-12-01 22:27:51

标签: jquery ruby-on-rails

此行正常

        <%=link_to_function "name", "$('#thing_name').html('<p>name<p>')" %>

此行不

        <%=link_to_function "name", "$('#thing_name').html('<%= escape_javascript(thing.name) %>')" %>

然后我摆脱了&lt;%=%&gt;

中的所有内容
       <%=link_to_function "name", "$('#thing_name').html('<%= %>')" %>

它仍然在抱怨一些奇怪的编译错误。

提前致谢。

2 个答案:

答案 0 :(得分:0)

由于一开始就打开<%=,您已经在ERB区块内,并且您不能使用另一个。使用string interpolation来评估字符串中的Ruby代码:

<%= link_to_function "name", "$('#thing_name').html('#{escape_javascript(thing.name)}')" %>

或者,如果由于某种原因你不想使用插值:

<%= link_to_function "name", "$('#thing_name').html('" + escape_javascript(thing.name) + "')" %>

答案 1 :(得分:-1)

我原本以为你需要逃离字符串:

<%=link_to_function "name", "$('#thing_name').html('"<%= escape_javascript(things.name) %>"')" %>

请注意<%= escape_javascript(things.name) %>

附近的双引号

应该工作......虽然我对erb来说仍然有点新鲜:)