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

私が見つけた最良の方法は、アプリ/ヘルパーのカスタムヘルパーモジュールを作成することでした

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にファイルを追加して独自のメソッドを追加できます。新しいライブラリをアプリケーション初期化子に含めることを忘れないでください。アプリケーションの設定(一番下)の後、

module AssetsHelper 
    def my_custom_helper_method 
    # do something 
    end 
end 

そしてapplication.rbでこのようにそれを必要とする:

+0

を。答えに感謝します。それも私のための選択肢でした。おそらく私はレールをフォークし、自分自身でこの機能を追加する必要があります。 –

関連する問題