【发布时间】:2017-08-01 10:40:24
【问题描述】:
我有一个 ImageUploader 类,其 default_url 方法如下:
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] 是 nil。 我的问题是如何让它在我的视图中调用 default_url,如果没有上传图片,在多重上传设置中?
这可以在创建/编辑记录时完成吗?
我不喜欢在视图中使用rescue,因为我认为 default_url 的功能已经存在于 CarrierWave 中并且应该使用。谢谢。
PS:我使用的是 Rails 4.2.4。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 carrierwave