2011-08-11 8 views
4

私は以前にpublic/images/flags/public/images/flags_small/に保管していた~500枚以上の旗画像を持っています。私の国モデルの各国については、:iso_codeが格納されています。これはそれに対応するフラグ画像の名前と同じです。たとえば、mxはメキシコの2文字のISOコードであるため、mx.pngはメキシコのフラグの名前です。Rails 3.1:アセットパイプラインの画像へのダイナミックリンク?

私はこれまで、国のアイソコードと大きなか小さなフラグを必要とするかどうかに基づいて画像を表示するためのhtmlを返すヘルパーメソッドを持っていました。

Rails 3.1では、アセットパイプラインに準拠するため、これらの画像をapp/assets/imagesフォルダに入れる必要があります。これから:

  1. サブフォルダを保持することはできますか?
  2. image_tagを使用して適切な画像を表示するにはどうすればよいですか?

編集:ソリューション 以下の答えが正解だったが、私は多くのコードを毎回入力したくなかったので、私は2つのヘルパー・メソッドを作成:はい

def flag(country) 
    image_tag('/assets/flags/' + country.iso_code.downcase + '.png') 
    end 

    def small_flag(country) 
    image_tag('/assets/flag_small/' + country.iso_code.downcase + '.png') 
    end 

答えて

8
  1. を、あなたは、例えば

  2. をすることができます:<%= image_tag 'flags/uk.gif' %>

+0

これは動作しません。 'ActionController :: RoutingError(ルートは[GET]と一致しません" /assets/flags/uk.png ")というエラーを返します:' – Clay

+0

Duh。それはuk.pngがないからです。それはgb.pngです。 :)ありがとう、あなたのコードが動作します。 – Clay

関連する問題