【问题标题】:CarrierWave "default_url" with multiple images带有多个图像的 CarrierWave “default_url”
【发布时间】: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


    【解决方案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">
    

    【讨论】:

    • 不。不能解决我的问题......并且与我在问题中提到的没有什么不同
    猜你喜欢
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多