我在rails应用程序中遇到了carrierwave / active-record的问题。我的问题是以下代码将所有图像解析为null
<% 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 eager loading的理解的一个问题,但是我无法弄清楚如何避免这个问题
答案 0 :(得分:0)
使用rails image_tag帮助器时会发生什么?根据carrierwave文档,您还错过了网址调整中的括号,但我并不认为这会导致您发生戏剧性事件。
<%= image_tag ad.carrier_image_url() %>
作为旁注,你应该真的移动&#34; Ad.all.limit(30)&#34;如果您希望保留所有内容,那么就会超出您的观点。
。