0

在尝试测试我的模型时,我尝试在 rails 控制台中运行以下命令:

user.occasions << Occasion.first

收到此错误:

irb(main):013:0>  user.occasions << Occasion.first
Occasion Load (0.2ms)  SELECT "occasions".* FROM "occasions" LIMIT 1
(0.0ms)  begin transaction
(0.0ms)  rollback transaction
ActiveRecord::AssociationTypeMismatch: Occasion(#70119208170580) expected, got NilClass(#70119200119960)`

这是我的模型类:

class User < ActiveRecord::Base
  has_many :occasions
  rolify
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable
  attr_accessible :name, :email, :password, :password_confirmation, :remember_me, :id
end

class Occasion < ActiveRecord::Base
  attr_accessible :date, :name
  belongs_to :user
end

我怎样才能让我的代码片段工作?

4

1 回答 1

4

看起来好像是:

  • 您正在尝试将您的第一Occasion条记录添加到此User- 并且Occasion尚未创建任何记录,或者
  • 您正在尝试将第一Occasion条记录添加到 thisUser中,并且该记录已经属于另一个User

您可以在控制台中尝试此操作并发布结果吗?

foo = Occasion.first
Occasion.first.inspect
于 2012-05-08T01:43:46.507 回答