此行正常
<%=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('<%= %>')" %>
它仍然在抱怨一些奇怪的编译错误。
提前致谢。
答案 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来说仍然有点新鲜:)