好的,所以我不确定如何说出来,但是:
我有一系列专辑,每张专辑都有很多图片。我正在使用ruby gem acts_as_list
来允许用户对相册中的图像进行排序,因此每个图像都有一个位置。进行排序的方法是在专辑图像和非专辑图像之间进行设置,并非所有专辑都会有一个位置为1的图像。
所以,我想要的是列出所有专辑,然后只显示该专辑中最早位置的图像。但是,没有方法可以找到第一个位置。
以下是我现在所拥有的:
<% @albums.each do |i| %>
<li class="box sortable_object" style="float:left; margin: 0.5em;" id="album_<%= i.id %>">
<span class="handle">[drag me!]</span>
<% unless i.tattoos.empty? %>
<%= image_tag i.tattoos.first.file.url(:small) %><br />
<% end %>
</li>
<% end %>
但是,根据它在图像表中的位置而不是位置编号,它只能找到相册中的第一张图像。
答案 0 :(得分:2)
您可以在声明关联时指定order
子句:
class Album < ActiveRecord::Base
has_many :tattoos, order: 'tattoos.position ASC'
end
这样,第一张图片将离开最低位置。