显示来自Dir.glob索引页面的特定图像

时间:2015-12-16 10:48:17

标签: ruby-on-rails dir

我有一个产品控制器,我在某个文件夹中显示所有可用的图像:

def index
  @images = Dir.glob("app/assets/images/database/*.jpg")
end

现在我尝试将每个图片链接到单独的动态展示页面:

def show
  @images = Dir.glob("app/assets/images/database/" + params[:id] + ".jpg")
end

可悲的是,我现在有一段时间错误"no implicit conversion of nil into String"

理想情况下,我想自动渲染索引页面上数据库文件夹中的所有图像,并将它们单独链接到show动作,我使用exifr获取有关每个图像的特定信息。

1 个答案:

答案 0 :(得分:0)

def show
  @images = Dir.glob("app/assets/images/database/" + params[:id] ||
                     "no-image" + ".jpg")
end

这不是一个好习惯。您应该使用任何图像上传器并设置默认图像。例如。对于CarrierWave:

class MyUploader < CarrierWave::Uploader::Base
  def default_url(*args)
    "/images/fallback/" + [version_name, "default.png"].compact.join('_')
  end
end