application_helper を簡素化するためにいくつかのヘルパー メソッドをネストします。たとえば、アプリ全体に適用される通貨を処理するメソッドがたくさんあり、currency_helper を入れて、そのヘルパー全体をアプリケーション ヘルパーに含めるだけです。
これどうやってするの?
私は試した:
helper :currencies
そして得た
undefined method `helper' for ApplicationHelper:Module
application_helper を簡素化するためにいくつかのヘルパー メソッドをネストします。たとえば、アプリ全体に適用される通貨を処理するメソッドがたくさんあり、currency_helper を入れて、そのヘルパー全体をアプリケーション ヘルパーに含めるだけです。
これどうやってするの?
私は試した:
helper :currencies
そして得た
undefined method `helper' for ApplicationHelper:Module
レールのヘルパーは、コントローラー間で機能を共有するためにコントローラーに含まれる単なるモジュールです。Rails 3 のヘルパーには奇妙な点がありました。そのため、実行しているバージョンによっては、すぐに期待どおりに動作する場合と動作しない場合があります。
基本的にやりたいことは、すべてのコントローラーにすべてのヘルパーを含めるように追加helper :all
することです。application_controller
これが必要でない場合は、たとえば、必要な特定のヘルパーを指定できますhelper :currencies
。
Rails 3 ベータ版helper :all
ではデフォルトの動作でしたが、最新のリリースでは元に戻されたと思います。
これが Rails 2 でどのように機能するかを説明した素晴らしい記事がありますが、Rails 3 では違いがあるかもしれませんが、良い出発点になるはずです。