Rails 4:显示按“日期”属性排序的元素?

时间:2014-01-04 22:35:22

标签: ruby-on-rails

所以我正在尝试创建一个显示一系列即将发生的事件的页面。问题是,这些事件每隔几周左右就会发生变化,所以我希望能够以管理员身份登录时不断更新事件(我正在使用ActiveAdmin)。

Event模型只需具有一些属性,即datetimelocationdescription

任何时候都只会有< 10个事件存在,并且我希望在单独的页面上按日期递增的顺序显示它们,即在我{{1}下的events操作/页面下}。我知道在我的StaticPages Controller操作定义(events)中,我可以调用StaticPages Controller,然后允许我访问@events = Event.all视图中的所有事件,但然后处理(即排序)events个对象以按日期增加的顺序显示它们的最佳方法是什么?我可以使用某种Rails助手或结构吗?感谢。

1 个答案:

答案 0 :(得分:4)

为了获取您寻找的数据,您基本上必须执行order SQL查询,例如Gene发布的内容(带回所有数据但订购到您的规范):

Event.order(date: :asc, time: :asc)

但是,如果您想让代码保持干净,您可能需要查看scope

#app/models/event.rb
Class Event < ActiveRecord::Base
  scope :latest, -> { order(date: :asc, time: :asc)}
end

这样您就可以随时拨打Event.latest了!