【问题标题】:How to include ActionView helpers in the assets pipeline?如何在资产管道中包含 ActionView 助手?
【发布时间】:2012-12-26 09:30:26
【问题描述】:

如何包含 Rails 视图助手以便资产管道执行上下文可以访问?

一个示例用例是使用 form_tag 辅助方法为表单生成标记,并使其可用于 Javascript 模板(如把手、jst 等)。

我使用 handlebar_assets gem,但这也适用于任何 erbhaml 模板。

【问题讨论】:

    标签: ruby-on-rails asset-pipeline actionviewhelper


    【解决方案1】:

    创建一个初始化程序并将帮助程序包含在资产的上下文中,如下所示:

    Rails.application.assets.context_class.class_eval do
      include ActionView::Helpers
      include MyAppHelper
      include Rails.application.routes.url_helpers
    end
    

    取自sprockets issue

    【讨论】:

    【解决方案2】:

    上面的答案现在已经过时了。从 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 2011-11-22
      • 2013-02-24
      • 1970-01-01
      相关资源
      最近更新 更多