0

ヘルパー関数から JavaScript を返すのに問題があります。次のテスト ケースを動作させることができません。

helpers/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 だと思いますが、解決策を見つけることができませんでした。

4

1 に答える 1

0

ERB は、出力された Javascript の文字をエスケープしています。

これを防ぐrawには、テンプレートでメソッドを使用します。

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

javascript_tagコンテキストのために、これにメソッドを追加しました。

于 2012-10-23T21:29:03.443 に答える