通过协会关联进行Rails订购

时间:2019-08-08 23:53:27

标签: ruby-on-rails activerecord

我要在一个协会的一个协会下订单 例如

图书馆有很多书籍,而一本书属于一个类别

我正在尝试的查询是Library.order("books.catergories.name"),但订单似乎不喜欢这样。有没有简单的解决方案可以解决此问题?

1 个答案:

答案 0 :(得分:2)

此查询返回带有uniq库的数组:

Library.left_joins(books: :category).order('catergories.name DESC').uniq

此查询返回带有重复库的ActiveRecord:Relation:

Library.left_joins(books: :category).group('libraries.id, catergories.name').order('catergories.name DESC')

此查询返回带有uniq库的ActiveRecord:Relation并预加载所有相关记录:

Library.includes(books: :category).order('catergories.name DESC')