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