我正在使用Rails引擎,並且對助手有問題。Rails引擎中的助手
顯然這是一個已知的「問題」,但沒有太多的解決方案。問題是我有一個我想全局訪問的AuthenticationHelper - 但它不起作用。
我已經read that you could add a few lines to your init.rb
但它似乎沒有任何效果。
任何想法在引擎中提供應用程序的最佳方式是什麼?
編輯:修正了它 - 只是把代碼(從鏈接)在engine.rb
而不是。
我正在使用Rails引擎,並且對助手有問題。Rails引擎中的助手
顯然這是一個已知的「問題」,但沒有太多的解決方案。問題是我有一個我想全局訪問的AuthenticationHelper - 但它不起作用。
我已經read that you could add a few lines to your init.rb
但它似乎沒有任何效果。
任何想法在引擎中提供應用程序的最佳方式是什麼?
編輯:修正了它 - 只是把代碼(從鏈接)在engine.rb
而不是。
將這個代碼engine.rb:
config.to_prepare do
ApplicationController.helper(MyEngineHelper)
end
內部類引擎
後代:這不再是必要的 - 軌道現在自動加載所有幫助程序 – danielpcox
運行軌3.2.12 ...必須添加此訪問ApplicationHelper內的方法 – Patm
從發動機的觀點我試圖訪問主要的應用程序助手(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
我必須將Rails 4.2中的.helper行更改爲:ApplicationController.helper(:: ApplicationHelper)......這甚至可能適用於您的第一個解決方案。 – Allen
你能提供的一個例子你放在engine.rb中的代碼? – westonplatter