我的问题:
模型类:
class Question < ActiveRecord::Base
attr_accessible :create_date, :last_update_date, :text, :title
end
从控制器中的方法我想实现类似的东西:
def index
@recent_questions = Question.all.sort {|a, b| a <=> b}
end
在哪里可以从最近到最早的
获得最终的可枚举order by create_date
我应该在课程定义中修改什么?
感谢。
答案 0 :(得分:1)
使用Ruby的sort_by:
@recent_questions.sort_by(&:create_date)
答案 1 :(得分:1)
您可以使用范围。
class Question < ActiveRecord::Base
#...
scope :by_time, order("created_at DESC")
end
# in controller
def index
@recent_questions = Question.by_time
end
除非您使用Rails 4,否则不要在控制器中使用all
。all
将返回一个数组,当您拥有大量数据时,该数组可能非常繁重。范围将返回仅在需要时运行查询的ActiveRecord::Relation
对象。