轨.积极记录.Odrer由关联的表列组成

Mik*_*ski 0 activerecord ruby-on-rails 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
Run Code Online (Sandbox Code Playgroud)

因此,我需要获取在group1中按项目名称排序的Ulrs列表.

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

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

Mar*_*pka 5

Url.joins(item: :group).
  where(groups: {name: 'group1'}).
  order('groups.name ASC, items.name ASC')
Run Code Online (Sandbox Code Playgroud)