2012-10-23 46 views
0

我從輔助函數返回javascript有問題。我不能讓下面的測試情況下工作:從rails helper返回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和原材料show_stuff和有沒有運氣。我覺得問題是Rails自動轉義html,但一直無法找到解決方案。

+1

嘗試[這篇文章](http://stackoverflow.com/questions/3932267/dont-escape-html-in-ruby-on-rails)和/或[這篇文章](http://stackoverflow.com /問題/ 5811488 /的Ruby-on-railss內容換將-DO-AN-自動HTML轉義)。另外請注意,你的ruby方法不需要'return',因爲它總是返回最後一行的值。 – meetamit

回答

0

ERB正在轉義輸出的Javascript中的字符。

要防止發生這種情況,請在模板中使用raw方法。

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

我已經在上下文中添加了javascript_tag方法。