2011-08-11 192 views
4

我有〜我以前保存在public/images/flags/public/images/flags_small/〜500+国旗图像。对于我的国家/地区模型中的每个国家/地区,我都会存储:iso_code,这与标记图像的名称相对应。例如,mx.png是墨西哥国旗的名称,因为mx是墨西哥的两个字母的ISO代码。Rails 3.1:动态链接到资产管道中的图像?

我以前有一个帮助器方法,它会返回html来显示基于国家的iso代码的图像,以及我是否想要大或小的标志。

随着Rails 3.1,为了符合资产管道,我的印象是这些图像应该进入app/assets/images文件夹。以下为:

  1. 我可以维护其中的子文件夹吗?
  2. 如何使用image_tag显示适当的图像?

编辑:解 下面的答案是正确的,但我不想每次都输入这么多的代码,所以我创建了两个辅助方法:

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