我正在尝试使用我的微缩模型视图来显示集合模型中的所有相关照片。
我的样本缩略图有两张照片,但下面的代码给出了“未定义的方法`照片'的错误#”。
<% @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 %>
同样,我可以先换出最后一次,然后再显示第二张图像。我做错了什么?
答案 0 :(得分:1)
在不知道关于你的关联的大量数据的情况下,我相对确定你想要使用在each
循环中实例化的实例变量。这看起来像是影响了:
<% @miniature.collections(:photo).each do |collection| %>
<% if !collection.photo.url(:medium).nil? %>
<%= image_tag collection.photo.url(:medium) %>
<% end %>
<% end %>
使用@miniature.collections.first.photo.url(:medium)
会为集合中的每张照片显示一次集合的第一张图片。可能这不是你想要的。