こんにちは。
KBMJでRuby on Rails を使ったweb開発に携わっているyoppiといいます。
基本的にビューで使いたい関数を持っているヘルパーはコントローラー側で読み込んであげる必要があります。ただ、あるヘルパーの関数をあるビューで使いたいというニッチな要求に対しては不便な場合があります。今回は、そのニッチな要求を簡単に満たしちゃう方法を紹介したいと思います。
方法はとても簡単で、呼び出したい関数を持っているヘルパー(今回はHogeHelper)を読み込むコードをビューに埋め込んであげればいいだけです。
実際は以下のようになります。
<% self.class.send(:include, HogeHelper) -%>
こうすれば、これを記述した以降の部分で読み込んだヘルパーの関数が呼び出せるようになります。
簡単ですね。 ヘルパー内の関数は多くなりすぎですが、このテクニックを使えば、スッキリとできるかもしれません。どこまでニーズがあるかはわかりませんが、参考にしていただくと幸いです。
Let's find your niche!
ActionView::Baseにincludeしてしまうと「特定ビューだけ」にならないのでは?
投稿できない。
written by 通りすがり / 2008.12.08 03:29
本文が一行だと投稿できないのは不便
written by とおりすがり / 2008.12.08 03:30