轨。 ActiveRecord的。按关联表列排序

时间:2013-11-19 10:36:20

标签: ruby-on-rails activerecord ruby-on-rails-4

我们说我的网站有三张桌子:

class Group < ActiveRecord::Base
  has_many :items
end

class Item < ActiveRecord::Base
  has_many :urls
  belongs_to :group, touch: true
end

class Url < ActiveRecord::Base
  belongs_to :item
end

所以我需要获取在group1中按项目名称排序的Ulrs列表。

类似的问题是如何获取按组名称排序的Url的完整列表,然后按项目名称排序。

使用sort_by方法创建几个简单循环不是问题,但是如果没有它们可能有任何优雅的方法吗? 似乎.where和.order方法不支持关联。

1 个答案:

答案 0 :(得分:5)

Url.joins(item: :group).
  where(groups: {name: 'group1'}).
  order('groups.name ASC, items.name ASC')