NameError:未定义的局部变量或方法

时间:2012-02-13 18:01:42

标签: ruby-on-rails nameerror

您可以帮助我解决以下问题吗?我知道这是基本的,但我似乎缺少一些非常基本的东西。当我介绍':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

2 个答案:

答案 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中。这可能是因为你比我更远,我不确定这是否会产生影响。祝你好运,如果你需要进一步的帮助,请告诉我,因为我们正在通过相同的培训教程。

相关问题