从rails helper返回javascript

时间:2012-10-23 21:20:16

标签: javascript html ruby-on-rails-3

我在从辅助函数返回javascript时遇到问题。我无法让以下测试用例起作用:

帮助器中的

函数/ application_helper.rb

def show_stuff
    return '$("div#flash").html("<p> stuff </p>");'
end

现在我尝试在general.js.erb

中调用这个辅助函数
<%= show_stuff %>

这是输出

$(&quot;div#flash&quot;).html(&quot;&lt;p&gt; stuff &lt;/p&gt;&quot;);

我也尝试过show_stuff.html_safe和raw show_stuff,但没有运气。我觉得问题是Rails自动转义html,但一直无法找到解决方案。

1 个答案:

答案 0 :(得分:0)

ERB正在转出您输出的Javascript中的字符。

要防止发生这种情况,请使用模板中的raw方法。

<%= javascript_tag do %>
    <%= raw(show_stuff) %>
<% end %>

我已为此上下文添加了javascript_tag方法。