我有一个带有default_url方法的ImageUploader
类,如下所示:
def default_url(*args)
ActionController::Base.helpers.asset_path("fallback/default.png")
end
在我的模型中,我安装了多个ImageUploader
class Model < ActiveRecord::Base
mount_uploaders :images, ImageUploader
end
这些图像是可选的,用户可以选择不上传它们。在这种情况下,model.images数组为空
model.images = []
model.images[0] = nil
现在,当我尝试在这样的视图中访问图像时,
<img src=<%= model.images[0].url %> class="media-object" style="width:256px">
,它会抛出nilClass错误,这是完全可以理解的,因为model.images [0]为零。 我的问题是,如果在多重上传设置中没有上传图片,如何在我的视图中调用default_url调用?
可以在创建/编辑记录时完成吗?
我不喜欢在视图中使用rescue
,因为我认为默认的功能已经存在于CarrierWave中并且应该使用。感谢。
PS:我使用的是Rails 4.2.4。
答案 0 :(得分:-1)
<img src=<%= model.try(:images).first.url %> class="media-object" style="width:256px">
ruby&gt; 2.3
<img src=<%= model.images&.first&.url %> class="media-object" style="width:256px">