如何將Rails視圖助手包含在資產管道執行上下文中?如何在資產管道中包含ActionView助手?
一個示例用例是使用form_tag
輔助方法爲表單生成標記,並使其可用於Javascript模板(如handlebars,jst等)。
我使用handlebar_assets寶石,但這應該適用於任何erb
或haml
模板。
如何將Rails視圖助手包含在資產管道執行上下文中?如何在資產管道中包含ActionView助手?
一個示例用例是使用form_tag
輔助方法爲表單生成標記,並使其可用於Javascript模板(如handlebars,jst等)。
我使用handlebar_assets寶石,但這應該適用於任何erb
或haml
模板。
創建inititializer,包括在這樣的資產範圍內的助手:
Rails.application.assets.context_class.class_eval do
include ActionView::Helpers
include MyAppHelper
include Rails.application.routes.url_helpers
end
以上回答是已經過時服用。由於鏈輪護欄3,相應的接口是一個配置塊,像這樣:
Rails.application.config.assets.configure do |env|
env.context_class.class_eval do
# include SomeHelper
end
end
此配置塊仍然應該被放置在初始化程序。
參考:https://github.com/rails/sprockets-rails/issues/307#issuecomment-170707886
這也爲我工作時,我想呈現的自定義ERB到字符串'模板= ERB.new(HTML) template.result(綁定)'。沒有這個,我無法使用concat和其他簡單的助手。 – portforwardpodcast
@brutuscat,你能澄清一下你會把這段代碼放在哪裏嗎?謝謝 – jackerman09
@ jackerman09沒問題:「創建inititializer」,在這裏看到http://guides.rubyonrails.org/configuring.html#using-initializer-files – brutuscat