Ruby on rails 除非再次查询,否则Rails Carrierwave url为零

Ruby on rails 除非再次查询,否则Rails Carrierwave url为零,ruby-on-rails,ruby,activerecord,carrierwave,Ruby On Rails,Ruby,Activerecord,Carrierwave,我在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| %>

我在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_图像似乎没有预加载到活动记录对象中。我认为这是我理解rails急切加载的一个问题,但我很难弄清楚如何避免这个问题。

使用rails图像_标记帮助器时会发生什么?根据carrierwave文档,您还缺少url调用的括号,但我不认为这是导致您出现戏剧性的原因

 <%= image_tag ad.carrier_image_url() %>


作为旁注,如果您希望将“广告全部限制(30)”保持在“railsy”状态,您应该将其移出您的视野。

什么是
carrier\u image
?型号或属性?这是一个由carrierwave上传器装载的属性
装载上传器:carrier\u image,ImageUploader
我不相信这与carrierwave有任何关系。您可以使用
.each
遍历activerecord结果集。因此,在第一个示例中,将第一行更改为
。我不知道为什么第二组代码呈现正确。对不起,我打错了,两个都有。每个都经过编辑以显示。