0

エンジンを 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) をデフォルトまたはオプションの設定で動作させることです。

いずれかのアプローチに関する提案は役に立ちます。

4

1 に答える 1