アーカイブ

render_component_as_string()の罠。 このエントリーを含むはてなブックマーク はてなブックマーク - render_component_as_string()の罠。

2006 年 11 月 6 日 Comments off

ActionController::Components::InstanceMethods#render_component_as_string()のこと。(長いので以下rcas())
他のアクションをこれで呼んだのだけれど、application.rhtmlが適用されちゃったってのが事の発端。
レスポンスを埋め込むんだから当然レイアウトは適用されてほしくないわけで。

ActionController::Base#render()(以下r())は「:layout=>false」を受け取ってくれるのにrcas()は受け取ってくれない。
じゃぁどうするんだってググってみたら、呼び出される方のアクション内でr()を呼んでやればよいとのこと。試してみたら確かに適用されなくなった。(コードは読まなかったのかって突っ込みはひとまず勘弁を。)
・・・でここから。
r()を呼ぶのはいいが、アクション内でこれを呼んだ場合に、それ以降のインスタンス変数がビュー(ここではbar.rhtml)の中で使えなくなる。

続きを読む…

カテゴリー: Rails タグ: