0

我试图让我的缩影视图显示收藏模型中的所有相关照片。

我的示例缩影有两张照片,但以下代码给出了错误“未定义的方法 `photo' for #”。

<% @miniature.collections(:photo).each do |photo| %>
  <%= image_tag @miniature.collections.photo.url(:medium) %>
<% end %>

我认为这些关系都是正确的,因为 rails 控制台可以很好地使用它们,并且以下代码显示了第一个图像,两次。

<% @miniature.collections(:photo).each do |photo| %>
    <%= image_tag @miniature.collections.first.photo.url(:medium) %>
    <% end %>

同样,我可以将第一个换成最后一个并显示第二张图像两次。我究竟做错了什么?

4

1 回答 1

1

在不了解您的关联的大量信息的情况下,我相对确定您想要使用您在each循环中实例化的实例变量。这看起来像是:

<% @miniature.collections(:photo).each do |collection| %>
  <% if !collection.photo.url(:medium).nil? %>
    <%= image_tag collection.photo.url(:medium) %>
  <% end %>
<% end %>

Using@miniature.collections.first.photo.url(:medium)将为集合中的每张照片显示一次集合的第一张图像。可能这不是您想要的。

于 2013-10-29T14:18:57.690 回答