您可以帮助我解决以下问题吗?我知道这是基本的,但我似乎缺少一些非常基本的东西。当我介绍':editors'时,事情似乎出错了,虽然我指的是正确的类名。谢谢你的帮助。
我已将模型“页面”定义如下 -
class Page < ActiveRecord::Base
belongs_to :subject
has_many :sections
has_and_belongs_to_many :editors, :class_name => "AdminUser"
end
我的AdminUser.rb定义如下
class AdminUser < ActiveRecord::Base
has_and_belongs_to_many :pages
has_many :section_edits
scope :named, lambda {|first,last| where(:first_name => first, :last_name => last)}
end
但是当我进入rails控制台并输入
时Loading development environment (Rails 3.2.1)
>> page.editors
NameError: undefined local variable or method `page' for main:Object
from (irb):1
答案 0 :(得分:0)
你在哪里初始化'page'?拥有的编辑器的集合属于特定页面,而不是一般的页面。钓掉页面:page = Page.find([some criterion])。然后page.editors将返回该页面的编辑。
答案 1 :(得分:0)
嘿,我正在做你正在做的同样的训练视频并遇到同样的问题。我所做的是重新观看了很多很多协会:简单&#39;视频,并确保我完全像教师一样复制代码,并确保保存!我完成更改代码后的.rb文件。我发现我完全像教师一样复制了代码但是在启动Rails控制台之前没有保存其中一个.rb文件,所以我收到了错误。此外,在插入教师告诉您要执行的代码(并保存.rb文件)之后,请确保退出Rails控制台并重新启动它,以便更新所有.rb文件。我希望这会帮助你!
另一件事,我没有这条线
has_many :sections_edits
在我的admin_user.rb中。这可能是因为你比我更远,我不确定这是否会产生影响。祝你好运,如果你需要进一步的帮助,请告诉我,因为我们正在通过相同的培训教程。