我的应用中有一张表,目前按照创建顺序显示项目。我希望他们按时间顺序按我的日期属性(<%= 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>
谢谢!
答案 0 :(得分:3)
你必须拥有它,对吗?
class User < ActiveRecord::Base
has_many :occassions
end
您可以将has_many
更改为:
has_many :occasions, order: 'dateg desc'
答案 1 :(得分: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|