2016-05-30 22 views
9

我剛剛升級到Rails 5,使用CarrierWave時我有一個奇怪的問題。Rails 5,「零不是有效的資產來源」使用Carrierwave

我有確切的代碼我有軌道4:

<%= image_tag article.image_url(:thumb) %> 

但升級後我得到:

nil is not a valid asset source 

之前升級到Rails 5,我沒有任何類似的問題

在我Article模型我有:

mount_uploader :image, ImageUploader 

可能出錯的是什麼?它可以是別的東西,而不是Rails升級問題?

+1

看起來你在這個記錄中沒有圖像。你能證實嗎? –

回答

8

的問題是,我是要表明不存在的圖像。

加入unless article.image.blank?解決了它。

編輯:軌道4,這將有沒有錯誤只是呈現什麼都沒有,而在 Rails的5它將引發錯誤。

非常感謝@BookOfGreg指出這一點。

+5

對於那些沒有carrierwave的人來說:在rails 4中,這將會呈現出一個空的img標籤,在rails 5中它會在零時提起,所以有一個小的差異。 – BookOfGreg

+1

聲援。 。 –

+1

同上。此外,不存在的默認圖像會在Rails 5中引發此錯誤,並且可能需要一點點尋找才能找到原因。 –

7

我不知道這是緊湊的解決方案或不是,但此代碼將工作。

激活上傳器中的回退方法。

def default_url 
    "/assets/fallback/" + [version_name, "default.png"].compact.join('_') 
    end 

希望這會對你有幫助。

乾杯(Y)

+0

我已經解決了,但我忘了更新這篇文章。不管怎樣,謝謝你。 –

+1

yaaahhh它的工作原理......謝謝@simran先生:) –

0

試試這個,你需要添加,除非你的代碼中有條件。您需要添加以下代碼

< = image_tag article.image_url(:thumb)unless article.image.blank? %>

相關問題