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 回答