2011-09-29 113 views
10

如何將我的自定義方法添加到我的資產中,例如Rails使用'asset_path'助手進行的CSS文件?將自定義方法添加到Rails 3.1資產管道?

隨着鐵路的自己的助手,我可以這樣寫:

# some.css.erb: 

<%= asset_path 'a_image.png' %> 

# How can I write this: 

<%= my_custom_method 'a_image.png' %> 

我試過很多方法,但無法找到一個體面的方式來這一點。你知道嗎?

謝謝

回答

18

我發現最好的方法是建立在app /傭工自定義幫助模塊:

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 

,你可能會遵循這個問題找到一個更好的辦法:如果我補充一點,我希望它會在Heroku工作太https://github.com/rails/rails/issues/3282

0

正常的輔助方法在資產視圖中不可用。要添加您自己的方法,您需要擴展Sprockets幫助器模塊。有一個look at the code的內置助手,看你如何做到這一點。

簡而言之,您可以在lib中添加一個與此結構相同的文件並添加您自己的方法。不要忘記在你的應用程序初始化器中包含新的庫。

+0

。感謝你的回答。這也是我的選擇。也許我應該岔道並自己添加此功能。 –