2015-06-18 21 views
3

我在導航應用程序中遇到carrierwave/active-record問題。我的問題是,下面的代碼可以解決所有的圖像爲nullRails載波網址爲零,除非再次查詢

<% Ad.all.limit(30).each do |ad| %> 
    <img src="<%= ad.carrier_image.url %>" > 
<% end %> 

凡爲以下呈現的所有圖像就好

<% Ad.all.limit(30).each do |ad| %> 
    <img src="<%= Ad.find(ad.id).carrier_image.url %>" > 
<% end %> 

的URL在那裏,只是在初始循環的carrier_image似乎並未預先加載到活動記錄對象中我認爲這是一個問題,因爲我對rails熱切加載的理解,但我無法弄清楚如何避免此問題

+0

什麼是'carrier_image'?模型還是屬性? –

+0

這是一個由carrierwave載入的屬性 上傳者'mount_uploader:carrier_image,ImageUploader' – jankyd

+0

我不認爲這與Carrierwave有什麼關係。您可以使用'.each'遍歷您的activerecord結果集。因此,在第一個示例中,將第一行更改爲「<%Ad.all.limit(30).each do | ad | %>'。我不確定爲什麼第二組代碼能正確渲染。 –

回答

0

當使用rails image_tag時會發生什麼幫幫我呃?根據carrierwave文檔,您也忽略了url調用中的括號,但我不認爲這是什麼導致了你的戲劇性。

<%= image_tag ad.carrier_image_url() %> 

作爲一個側面說明,你真的應該移動「Ad.all.limit(30)」你的觀點,如果你想保持它所有的「railsy」。