2011-09-29 202 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

。感谢你的回答。这也是我的选择。也许我应该岔道并自己添加此功能。 –

相关问题