如何包含 Rails 视图助手以通过资产管道执行上下文访问?
一个示例用例是使用form_tag
辅助方法为表单生成标记,并使其可用于 Javascript 模板(如把手、jst 等)。
我使用 handlebar_assets gem,但这也应该适用于任何erb
模板haml
。
如何包含 Rails 视图助手以通过资产管道执行上下文访问?
一个示例用例是使用form_tag
辅助方法为表单生成标记,并使其可用于 Javascript 模板(如把手、jst 等)。
我使用 handlebar_assets gem,但这也应该适用于任何erb
模板haml
。
创建一个初始化程序并将助手包含在资产的上下文中,如下所示:
Rails.application.assets.context_class.class_eval do
include ActionView::Helpers
include MyAppHelper
include Rails.application.routes.url_helpers
end
取自这个sprockets issue
上面的答案现在已经过时了。从 sprockets-rails 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