0

好的,所以我不知道该怎么说,但是:

我有一系列专辑,每张专辑都有很多图片。我正在使用 ruby​​ gemacts_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 %>

但这只是根据它在图像表中的位置而不是它的位置编号来找到相册中的第一张图像。

4

1 回答 1

2

您可以在声明关联时指定一个order子句:

class Album < ActiveRecord::Base
   has_many :tattoos, order: 'tattoos.position ASC'
end

这样,第一张图片将是位置最低的一张。

于 2011-12-30T15:40:43.393 回答