我有一个产品控制器,我在某个文件夹中显示所有可用的图像:
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获取有关每个图像的特定信息。
答案 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