ActiveRecord对父级内的子级进行排序

时间:2013-07-23 22:21:27

标签: ruby-on-rails-3 activerecord

有没有办法通过ActiveRecord预先排序父级的子级(Rails 3.2.13)?

所以如果你有这样的设置

class Parent < ActiveRecord::Base
has_many :children

[...]

class Children < ActiveRecord::Base
belongs_to :parent

喜欢这个:

p = Parent.where(:name => 'Diana').includes(:children, :order => 'd_o_b DESC')

这样当我调用p.children时,我会得到一个按出生顺序排列的对象数组,而不是它们的数据库ID。

或者我之后只需要对数组进行排序?

1 个答案:

答案 0 :(得分:1)

Parent模型中,将has_many更改为:

has_many :children, :order => 'd_o_b DESC'

然后,只要您访问父记录的children关联(例如@parent.children),它们就会按出生日期的降序排列。