在rails中查询一对多的关系?

时间:2015-01-27 01:58:48

标签: ruby-on-rails activerecord

我有两个模型设置如下:

class Page < ActiveRecord::Base
  belongs_to :book
end

class Book < ActiveRecord::Base
  has_many :pages
end

我知道如果我有一个模型,我可以检索给定页面所属的书籍,例如page.book。但是,如果我有一组任意页面,我可以检索我所有页面所属的所有书籍吗?

2 个答案:

答案 0 :(得分:0)

如果创建了关联,您可以执行以下操作:

pages.book

并且

book.pages

答案 1 :(得分:0)

You can do :
book = Book.first 
 #get pages
 book.pages 

page = Page.first 
 # get the book 
 page.book

To fetch multiple books from multiple pages: 
 pages = Page.last(5) #taking last 5 pages. 
 book_ids = pages.map(&:book_id)
 books = Book.where(id: book_ids) #lists books of last 5 pages.