rails console出错了

时间:2012-10-26 15:08:10

标签: ruby-on-rails model

大家都对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

2 个答案:

答案 0 :(得分:1)

editorsPage上的实例方法,不是 Page的类方法。您需要实例化Page的新实例以在其上调用editors

page = Page.find(...)
page.editors << me

您尝试做的是在me 上使用<<附加Page,因为您不是指定哪个 Pageme追加到。

一些阅读:

答案 1 :(得分:0)

这是错的......它应该是

p = Page.first

p.editors << me

编辑器是一种实例方法,它通过关联自动生成..请参阅Rails指南以获取更多信息......