我正在使用rails引擎,我的助手有问题。
显然这是一个已知的问题"但那里没有很多解决方案。问题是我有一个我想全局访问的AuthenticationHelper - 但是它没有用。
我read that you could add a few lines to your init.rb
但它似乎没有任何效果。
知道在引擎中提供应用程序的最佳方法是什么?
编辑:修正了 - 只需将代码(来自链接)放在engine.rb
中。
答案 0 :(得分:10)
将此代码放入engine.rb:
config.to_prepare do
ApplicationController.helper(MyEngineHelper)
end
答案 1 :(得分:2)
要从引擎的视图中访问主应用程序帮助程序(ApplicationHelper),我尝试将其包括在内:
应用/助手/ your_engine / application_helper.rb 强>
module YourEngine
module ApplicationHelper
include ActionView::Helpers::ApplicationHelper
end
end
它有效,但有一次,当我重新启动dev服务器时,它会抛出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