向Rails 3.1资产管道添加自定义方法?

时间:2011-09-29 19:06:36

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

如何将自定义方法添加到我的资产中,例如像Rails一样使用'asset_path'帮助程序的css文件?

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

# some.css.erb:

<%= asset_path 'a_image.png' %>

# How can I write this:

<%= my_custom_method 'a_image.png' %>

我尝试了很多方法,但找不到合适的方法。你知道吗?

由于

2 个答案:

答案 0 :(得分:18)

我发现最好的方法是在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

答案 1 :(得分:0)

资产视图中没有正常的帮助方法。要添加自己的方法,您需要扩展Sprockets帮助程序模块。拥有look at the code内置帮助程序,以了解如何执行此操作。

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