大家都对rails控制台遇到了麻烦。 这是错误。
>> Page.editors << me
NoMethodError: undefined method `editors' for #<Class:0x1038560e8>
from /Library/Ruby/Gems/1.8/gems/activerecord-3.2.8/lib/active_record/dynamic_matchers.rb:50:in `method_missing'
from (irb):5
这是模型之间的关系。
class Page < ActiveRecord::Base
attr_accessible :name, :permalink, :position
has_and_belongs_to_many :editors, :class_name => "AdminUser"
#has_and_belongs_to_many :AdminUser
belongs_to :subject
has_many :sections
end
第二个
class AdminUser < ActiveRecord::Base
attr_accessible :first_name, :last_name, :email, :username
has_and_belongs_to_many :pages
scope :named, lambda{|first,last| where(:first_name => first,:last_name => last)}
end
答案 0 :(得分:1)
editors
是Page
上的实例方法,不是 Page
的类方法。您需要实例化Page
的新实例以在其上调用editors
。
page = Page.find(...)
page.editors << me
您尝试做的是在me
类上使用<<
附加Page
,因为您不是指定哪个 Page
将me
追加到。
一些阅读:
答案 1 :(得分:0)
这是错的......它应该是
p = Page.first
p.editors << me
编辑器是一种实例方法,它通过关联自动生成..请参阅Rails指南以获取更多信息......