我们说我的网站有三张桌子:
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方法不支持关联。
答案 0 :(得分:5)
Url.joins(item: :group).
where(groups: {name: 'group1'}).
order('groups.name ASC, items.name ASC')