Rails引擎中的助手

我正在使用rails引擎,我对帮助器有问题。

显然这是一个已知的“问题”,但那里没有很多解决方案。 问题是我有一个我想要全局访问的AuthenticationHelper – 但它不起作用。

我已经读过你可以在你的init.rb添加几行但它似乎没有任何效果。

知道什么是在引擎中提供应用程序的最佳方法吗?

编辑:修正了 – 只需将代码(来自链接)放入engine.rb

将此代码放在engine.rb中:

 config.to_prepare do ApplicationController.helper(MyEngineHelper) end 

要从引擎的视图访问主应用程序助手(ApplicationHelper),我尝试包括:

应用程序/佣工/ your_engine / application_helper.rb

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

它工作,但有一次,当我重新启动dev服务器时,它会抛出uninitialized constant ActionView::Helpers::ApplicationHelper ,但我无法重现此exception。

编辑

删除了这个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