Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails access都有许多直通记录_Ruby On Rails_Activerecord - Fatal编程技术网

Ruby on rails rails access都有许多直通记录

Ruby on rails rails access都有许多直通记录,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有三个模型:作家、书、书页 Writer has_many :books Writer has_many :pages, through: :books Book has_many :pages 我想通过该书显示属于作者的所有页面,但它给出了一个错误: Writer.first.books #=> works, shows all writer books Book.first.pages #=> works, shows all book pages Writer.first.

我有三个模型:作家、书、书页

Writer has_many :books
Writer has_many :pages, through: :books
Book has_many :pages
我想通过该书显示属于作者的所有页面,但它给出了一个错误:

Writer.first.books #=> works, shows all writer books
Book.first.pages #=> works, shows all book pages
Writer.first.books.pages #=> does not work, must in theory display all pages that belong to the writer

除了使用
每个do | x |
之外,显示所有页面的最佳方式是什么?

Writer。首先,books
是一个集合,将显示第一个
Writer
中的所有书籍,这就是为什么在其上调用
pages
时会出现错误<代码>页面需要从
书籍
编写器
对象(非集合)调用

因此,假设您的关联是完整的,例如:

class Writer < ApplicationRecord
  has_many :books
  has_many :pages, through: :books
end

class Book < ApplicationRecord
  belongs_to :writer
  has_many   :pages
end

class Page < ApplicationRecord
  belongs_to :book
end
Writer.first.pages