在视图中循环浏览我的对象时,我试图像这样显示我的列表的第一个附加图像:
<%= image_tag listing.assets.first.attachment.url(:small) %>
如果我的所有商家信息中至少有一张图片但如果一个商家信息没有图片,则此功能正常,则不会显示默认图片。相反,我得到一个未定义的方法`附件'为nil:NilClass。
这是合乎逻辑的,因为对象是零,但我在我的模型中有这个
has_attached_file :attachment, :styles => { :medium => "300x300>",
:small => "200x200>", :thumb => "100x100>" }, :default_url =>
"no_image_:style.jpg"
所以我假设如果image_tag没有收到我的网址,它应该显示在我的 app / assets / images 文件夹中的“no_image_small.jpg”。
它应该如何运作?如果图像不存在并且是nill,我该如何显示我的no_image_small.jpg?
答案 0 :(得分:0)
我猜你有一个看起来像这样的列表模型:
class Listing < ActiveRecord::Base
has_many :assets
...
end
像这样的资产类
class Asset < ActiveRecord::Base
has_attached_file :attachment, :styles => { :medium => "300x300>",
:small => "200x200>", :thumb => "100x100>" },
:default_url => "no_image_:style.jpg"
...
end
问题不是回形针或您设置,而是列表没有任何关联资产。
以下是仍然从关联中获取默认图像的解决方案:
<% asset = listing.assets.first || listing.assets.build %>
<%= image_tag asset.attachment.url(:small) %>