エンジンを Rails 4 にアップグレードしましたが、オプションの共有ヘルパーを構成しようとすると問題が発生します。ヘルパーAssessable::DisplayHelper
には、html をレンダリングするだけの 2 つのメソッドがあります。
オプションとはどういう意味ですか
- 望ましいデフォルトの構成は、エンジンの外部で使用するためにヘルパーを main.app で使用できるようにすることですが、詳細は隠されています。(html は、エンジンによって生成されたハッシュから生成されますが、メイン アプリによって使用されます)
- オプションのジェネレーターは、ヘルパーを helpers/assessable/display_helper にインストールします。これは、アプリ ユーザーが必要に応じて変更できます。
オプションのジェネレーターは正常に動作し、エンジンのヘルパーをオーバーライドしますが、デフォルト モードを動作させる方法がわかりません。
Rails 4 のリリース ノートでヘルパーの読み込み順序に関するメモを読みましたが、何を変更する必要があるかわかりません。私が試したすべてについて
- アプリケーションコントローラーへの追加
helper Assessable::DisplayHelper
(非推奨) Assessable::DisplayHelper
スタブ化されたヘルパーに含めようとしています。- 暗闇の中でいくつかの他の刺し傷
生成およびエラー:
RuntimeError: Circular dependency detected while autoloading constant Assessable::DisplayHelper
...
from /Users/me/.rvm/gems/ruby-2.0.0-p247@rails4/gems/actionpack-4.0.0/lib/action_controller/railties/helpers.rb:17:in `inherited'
from /Users/me/work/pm/app/controllers/application_controller.rb:1:in `<top (required)>'
クラスとヘルパーで表示機能を使用することを行ったり来たりしました。メインアプリにクラスをインストールするのに問題があったため、ヘルパーに切り替えました。目標は、`{class.}display_xxx(hash,post) をデフォルトまたはオプションの設定で動作させることです。
いずれかのアプローチに関する提案は役に立ちます。