【问题标题】:Rails Carrierwave url is nil unless queried againRails Carrierwave url 为 nil,除非再次查询
【发布时间】:2015-06-18 22:45:04
【问题描述】:

我的 rails 应用程序中的载波/活动记录存在问题。我的问题是以下代码将所有图像解析为空

<% 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 %>

网址在那里,就在初始循环中,carrier_image 似乎没有预加载到活动记录对象中避免这个问题

【问题讨论】:

  • 什么是carrier_image?模型还是属性?
  • 是载波上传者mount_uploader :carrier_image, ImageUploader挂载的属性
  • 我认为这与 Carrierwave 无关。您可以使用.each 来遍历您的活动记录结果集。因此,在您的第一个示例中,将第一行更改为 &lt;% Ad.all.limit(30).each do |ad| %&gt;。我不确定为什么第二组代码正确呈现。
  • 对不起,我打错了,两者都有 .each ,编辑显示。

标签: ruby-on-rails ruby activerecord carrierwave


【解决方案1】:

当您使用 rails image_tag 助手时会发生什么?根据carrierwave文档,您还缺少url调用中的括号,但我认为这不是导致您发生戏剧性的原因。

 <%= image_tag ad.carrier_image_url() %>

附带说明一下,如果您希望将“Ad.all.limit(30)”完全移出您的视野,那么您真的应该将其移出您的视野。

【讨论】:

    猜你喜欢
    • 2019-06-18
    • 1970-01-01
    • 2015-03-15
    • 2017-07-11
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 2020-03-08
    相关资源
    最近更新 更多