2017-08-01 58 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