2015-02-11 122 views
1

我有一個ActiveRecord查詢,我需要幫助。如何從嵌套activerecord集合中獲取所有記錄

假設我們有一個用戶,他有多個庫。每個圖書館都有很多收藏。在每一個收藏中,他都有很多書。

如何獲得他所有書籍的清單?

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

,但我希望有一個更簡單的方法,那麼這個。

+0

您正在尋找'的has_many through'使用軌道的has_many。有關示例,請參閱[這裏](http://stackoverflow.com/questions/2512522/has-many-inheritance)。 – ptd 2015-02-11 16:00:26

回答

0

您可以通過它

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

然後,你可以簡單地查詢

@user = User.first 
@user_books = @user.books 
相關問題