0

わかりましたので、これをどのように表現するかはわかりませんが、

一連のアルバムがあり、各アルバムには多くの画像があります。acts_as_listユーザーがアルバム内の画像を並べ替えられるようにするために ruby​​ gem を使用しているため、各画像には位置があります。そして、並べ替えを行う方法は、アルバム画像と非アルバム画像の間で設定することです。すべてのアルバムに位置が 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 に答える