2012-05-08 3 views
0

В попытках проверить мои модели, им пытаются запустить следующую в рельсах консоли:Rails «AssociationTypeMismatch» Ошибка

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 

Как я могу заставить свой фрагмент кода работать?

+0

Есть ли у вас какие-либо Occassions? Кажется, что 'Occassion.first' is nil – ctcherry

ответ

4

Это выглядит так, как если либо:

  • Вы пытаетесь добавить свою первую Occasion запись в этом User - и нет Occasion записей создана еще, или
  • Вы пытаетесь добавить первая Occasion запись на этот User, и эта запись уже принадлежит другому User.

Вы можете попробовать это в консоли и опубликовать результаты?

foo = Occasion.first 
Occasion.first.inspect 
+0

wow, это было глупо, никакого случая не было создано .. спасибо! – js111

Смежные вопросы