2017-08-01 48 views
1

我有一个ImageUploader类与DEFAULT_URL方法是这样的:CarrierWave“DEFAULT_URL”多个图像

def default_url(*args) 
    ActionController::Base.helpers.asset_path("fallback/default.png") 
end 

在我的模型,我已经安装多个ImageUploaders

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,因为我认为default_url的功能已经存在于CarrierWave中,应该使用它。谢谢。 PS:我正在使用Rails 4.2.4。

回答

-1
<img src=<%= model.try(:images).first.url %> class="media-object" style="width:256px"> 

红宝石> 2.3

<img src=<%= model.images&.first&.url %> class="media-object" style="width:256px"> 
+0

不。没有解决我的问题......并且与我在问题中提到的没有什么不同 – aceBox