RoR:实例变量解释为缺失方法

时间:2013-12-28 01:55:20

标签: ruby-on-rails pry

我正在关注一个教程,根据代码,我应该能够调用以下错误:

page = Page.find(1) # works
page.sections.size # Does not work

subject = Subject.find(1) # works
subject.pages.size # works

一个部分属于一个页面,一个页面属于一个主题。我正在尝试计算与相应页面关联的部分的数量(在本例中,页面:id => 1)。

错误是Undefined Method,但我没有访问方法,我正在访问实例变量。我已经查看了我的模型和控制器,并没有为subject.pages.size定义范围或更改,但它没有投诉。当我试图做同样的操作时,我很困惑为什么它不适合它的孩子,page.sections

可以在此处找到诊断信息(来自使用pry的CLI):http://pastebin.com/xKKvSPkz

数据库架构:http://pastebin.com/hiAhXGt8

1 个答案:

答案 0 :(得分:2)

确保定义pagesection之间的关系:

class Page < ActiveRecord::Base
  has_many :sections
end

class Section < ActiveRecord::Base
  belongs_to :page
end

通过此关系,以下内容应按预期工作:

page = Page.find(1)
page.sections.size