1

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

2 回答 2

0

你在哪里初始化“页面”?拥有编辑器的集合属于特定页面,而不是一般的页面。捞出一个页面:page = Page.find([some criteria])。然后 page.editors 将返回该页面的编辑器。

于 2012-03-06T20:13:52.933 回答
0

嘿,我正在做与您正在做的相同的培训视频,并且遇到了同样的问题。我所做的是重新观看“多对多关联:简单”视频,并确保我复制的代码与讲师完全一样,并确保保存!完成更改代码后的 .rb 文件。我发现我复制了与讲师完全一样的代码,但在启动我的 Rails 控制台之前没有保存其中一个 .rb 文件,所以我收到了错误。此外,在插入讲师告诉您执行的代码(并保存 .rb 文件)后,请确保退出 Rails 控制台并重新启动它,以便更新所有 .rb 文件。我希望这可以帮助你!

还有一件事,我没有电话

    has_many :sections_edits

在我的 admin_user.rb 中。这可能是因为你比我走得更远,我不确定这是否会有所作为。祝你好运,如果您需要进一步的帮助,请告诉我,因为我们正在学习相同的培训教程。

于 2015-03-10T21:55:32.050 回答