js.coffee では無理、js.erb で可能 なぜ?

\ あなたにピッタリの銘柄がみつかる /

みんかぶプレミアムを無料体験!

プランをみる

2013/10/18 - LONERさんの株式ブログ。タイトル:「js.coffee では無理、js.erb で可能 なぜ?」 本文:ある js.erb の中で下のようにして 下の alert "abc" と書かれた js.coffee を呼び出していたとする。このとき、ブラウザには

株式会社ミンカブ・ジ・インフォノイド
(C) MINKABU THE INFONOID, Inc.

js.coffee では無理、js.erb で可能 なぜ?

LONERさん
LONERさん
ある js.erb の中で下のようにして 下の alert "abc" と書かれた js.coffee を呼び出していたとする。このとき、ブラウザには alert("abc") が返される。

<%=render(:partial => 'sample')%>


alert "abc"

js.coffee を js.erb 形式に書き換えて(もちろんファイル名も変えて)同じことをやってみると正しく表示される。
しらべていくうちに、それっぽい書き込みをみつけた。http://stackoverflow.com/questions/2853325/how-can-i-get-rails-to-not-render-escaped-quotes-as-quot

<% content_for :script do %>
$(document).ready ( function() { $.jGrowl("<%= raw(p.message) %>", { sticky: true }) });
<% end %>

調べ疲れたからやってないけど、これでいけるっぽい。
raw でやるやり方も書いてあった。そっちの方が自然な気がするが、そもそもなぜ js.erb と js.coffee で変わってくるんだ?
LONERさんのブログ一覧