1

application_helper を簡素化するためにいくつかのヘルパー メソッドをネストします。たとえば、アプリ全体に適用される通貨を処理するメソッドがたくさんあり、currency_helper を入れて、そのヘルパー全体をアプリケーション ヘルパーに含めるだけです。

これどうやってするの?

私は試した:

helper :currencies

そして得た

undefined method `helper' for ApplicationHelper:Module
4

1 に答える 1

1

レールのヘルパーは、コントローラー間で機能を共有するためにコントローラーに含まれる単なるモジュールです。Rails 3 のヘルパーには奇妙な点がありました。そのため、実行しているバージョンによっては、すぐに期待どおりに動作する場合と動作しない場合があります。

基本的にやりたいことは、すべてのコントローラーにすべてのヘルパーを含めるように追加helper :allすることです。application_controllerこれが必要でない場合は、たとえば、必要な特定のヘルパーを指定できますhelper :currencies

Rails 3 ベータ版helper :allではデフォルトの動作でしたが、最新のリリースでは元に戻されたと思います。

これが Rails 2 でどのように機能するかを説明した素晴らしい記事がありますが、Rails 3 では違いがあるかもしれませんが、良い出発点になるはずです。

于 2010-11-26T17:37:36.613 に答える