我在从辅助函数返回javascript时遇到问题。我无法让以下测试用例起作用:
帮助器中的函数/ application_helper.rb
def show_stuff
return '$("div#flash").html("<p> stuff </p>");'
end
现在我尝试在general.js.erb
中调用这个辅助函数<%= show_stuff %>
这是输出
$("div#flash").html("<p> stuff </p>");
我也尝试过show_stuff.html_safe和raw show_stuff,但没有运气。我觉得问题是Rails自动转义html,但一直无法找到解决方案。
答案 0 :(得分:0)
ERB正在转出您输出的Javascript中的字符。
要防止发生这种情况,请使用模板中的raw
方法。
<%= javascript_tag do %>
<%= raw(show_stuff) %>
<% end %>
我已为此上下文添加了javascript_tag
方法。