【问题标题】:Add custom methods to Rails 3.1 asset pipeline?向 Rails 3.1 资产管道添加自定义方法?
【发布时间】:2011-09-29 19:06:36
【问题描述】:

如何将我的自定义方法添加到我的资产中,例如像 Rails 使用 'asset_path' 助手所做的 css 文件?

有了 Rail 自己的助手,我可以这样写:

# some.css.erb:

<%= asset_path 'a_image.png' %>

# How can I write this:

<%= my_custom_method 'a_image.png' %>

我尝试了很多方法,但找不到合适的方法。你认识一个吗?

谢谢

【问题讨论】:

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


    【解决方案1】:

    我发现最好的方法是在 app/helpers 中创建一个自定义帮助模块:

    module AssetsHelper
      def my_custom_helper_method
        # do something  
      end
    end
    

    然后在 application.rb 中要求它,在您的应用程序配置之后(非常底部):

    module Sprockets::Helpers::RailsHelper
      require Rails.root.join('app', 'helpers', 'assets_helper.rb')
      include AssetsHelper
    end
    

    您可能会关注此问题以找到更好的方法:https://github.com/rails/rails/issues/3282

    【讨论】:

      【解决方案2】:

      正常的辅助方法在资产视图中不可用。要添加您自己的方法,您需要扩展 Sprockets 辅助模块。有一个look at the code 的内置助手,看看你会如何做到这一点。

      简而言之,您可以在 lib 中添加一个与此结构相同的文件并添加您自己的方法。不要忘记在您的应用程序初始化程序中包含新库。

      【讨论】:

      • 如果我补充一点,我希望它也能在 heroku 上工作。感谢你的回答。这也是我的一个选择。也许我应该分叉导轨并自己添加此功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 2012-02-04
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多