1

現在、作成された順序でアイテムを表示するテーブルがアプリにあります。日付属性 (<%= o.dateg %>) で時系列に並べ替えてもらいたいです。これを行う適切なレールの方法は何ですか?

コントローラ:

def show
 @occasion = Occasion.find(params[:id])
end

意見:

   <% @user.occasions.each do |o| %>
          <td><%= o.name %></td>
          <td><%= o.pname %></td>
          <td><%= o.dateg %></td>

ありがとう!

4

2 に答える 2

3

あなたはそれを持っている必要がありますね?

class User < ActiveRecord::Base
  has_many :occassions
end

次のように変更できますhas_many

has_many :occasions, order: 'dateg desc'
于 2012-07-12T22:14:44.380 に答える
3

sortビューでは、たとえば使用できます

@user.occasions.sort {|a,b| b.dateg <=> a.dateg }.each do |o|

(これは逆時系列になります)

ただし、実際にはビューではなくモデルでこれを行う必要があります。名前付きスコープは正常に機能します。

class User < ActiveRecord::Base
  has_many :occasions
  scope :recent_occasions, order('dateg desc')
end

次に使用します

@user.recent_occasions.each do |o|

于 2012-07-12T22:22:43.987 に答える