2012/06/01

[rails] htmlテンプレートをレンダリングしてjs.erb内で使用する。

Rails3のlink_toや、form_for、form_tagで:remote => trueを指定すると、 デフォルトでdataType=jsでリクエストが発行される。
この場合、コントローラは、jsとして応答したいが、jsでページの一部のコンテンツを更新したい時、 更新内容は、html.erbとして定義しておきたい、という場合がある。
js.erbの中で、html.erbをレンダリングした結果を使用するには、
  $("some_element").html("<%= escape_javascript(render(:partial => 'some_partial_html')) %>");
のように、escape_javascriptヘルパを利用する。

0 件のコメント: