【发布时间】:2015-06-26 15:30:03
【问题描述】:
这是我的 Rails 4 应用程序:http://wheels2015.herokuapp.com
我希望条目(事件)按时间顺序列出,而不是按我将它们输入数据库的顺序(目前的顺序)。
This question 与我的不一样,但它似乎在一般情况下,所以当用户建议 OP 在 Rails API (http://apidock.com/rails/ActiveRecord/QueryMethods/order) 中查找 ActiveRecord 查询方法时,我做到了。
你认为这会达到我想要的效果吗?
Event.order('date_time')
=> SELECT "events".* FROM "event" ORDER BY event_date_time
这是我的事件控制器中负责index 页面以及event params 的部分:
def event_params
params.require(:event).permit(:event_name, :location, :description, :event_date_time, :organizer, :category) if params[:event]
end
def index
@events = Event.all
end
【问题讨论】:
-
好吧,你为什么不试试呢?我不明白这个问题。你想让我为你运行代码并告诉你它有效吗?因为您的应用可以为您做同样的事情。
-
event_date_time是否与created_at相同?created_at是您创建条目时的时间戳。我想你想要Event.order('created_at') -
@rob 我已经为不同的日期和时间添加了一个特定字段。我不希望它按
created_at的顺序排序,我怀疑它已经这样做了,因为我的最新条目是最后一个,即使它发生在我制作的其他几个条目之前。 -
我不确定 Rails 文档和/或教程没有回答这个问题。
-
@events = Event.order('event_date_time') => SELECT "events".* FROM "event" ORDER BY event_date_time给了我一个语法错误,所以我尝试了普通的旧@events = Event.order('event_date_time')并且它有效!谢谢,我认为只是写出问题的行为有所帮助。
标签: ruby-on-rails ruby-on-rails-4 activerecord