Rails 3.1:动态链接到资产管道中的图像?

Cla*_*lay 4 image ruby-on-rails-3.1 asset-pipeline

我有我以前保持在500+〜旗图像public/images/flags/public/images/flags_small/.对于我的国家/地区模型中的每个国家/地区,我存储了:iso_code与其对应的标志图像的名称相同的内容.例如,mx.png是墨西哥旗的名称,因为mx是墨西哥的双字母ISO代码.

我以前有一个帮助方法,它将返回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
Run Code Online (Sandbox Code Playgroud)

Max*_*tov 8

  1. 是的你可以

  2. 例如: <%= image_tag 'flags/uk.gif' %>