如何从嵌套的activerecord集合中获取所有记录

时间:2015-02-11 15:57:36

标签: ruby-on-rails activerecord

我有一个需要帮助的ActiveRecord查询。

假设我们有一个用户,他有多个库。在每个库中,有许多集合。在每个系列中,他都有很多书。

我如何获得他所有书籍的清单?

我知道我可以做library.each | library | library.collections.each do | collections | collection.books.each do | book |书籍<< book.title

但是我希望有一种比较简单的方法。

1 个答案:

答案 0 :(得分:0)

你可以使用rails'has_many来实现它

class User
  has_many :libraries
  has_many :collections, through: :libraries
  has_many :books, -> { uniq }, through: :collections
end

然后你可以简单地查询

@user = User.first
@user_books = @user.books