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