8

私は Rails エンジンに取り組んでいますが、ヘルパーに問題があります。

どうやらこれは既知の「問題」ですが、解決策はあまりありません。問題は、グローバルにアクセスしたい AuthenticationHelper があることですが、機能していません。

数行追加できると読みinit.rbましたが、効果はないようです。

アプリケーションをエンジンで利用できるようにする最善の方法は何か考えはありますか?

編集:修正しました-engine.rb代わりに(リンクからの)コードを入れてください。

4

2 に答える 2

10

次のコードを engine.rb に入れます。

config.to_prepare do
  ApplicationController.helper(MyEngineHelper)
end
于 2012-09-04T05:04:47.327 に答える
3

私が試したエンジンのビューからメインアプリヘルパー(ApplicationHelper)にアクセスするには、これを含めます:

app/helpers/your_engine/application_helper.rb

module YourEngine
  module ApplicationHelper
    include ActionView::Helpers::ApplicationHelper
  end
end

動作しますが、一度、開発サーバーを再起動するとスローされますuninitialized constant ActionView::Helpers::ApplicationHelperが、この例外を再現できません。

編集

これを削除して、これincludeを作成しました:

lib/my_engine/engine.rb (エンジン内にあります)

module MyEngine
  class Engine < ::Rails::Engine
    isolate_namespace MyEngine
    config.to_prepare do
      ApplicationController.helper(ActionView::Helpers::ApplicationHelper)
    end
  end
end
于 2014-02-15T00:55:27.760 に答える