Подтвердить что ты не робот

Rails 3 - has_many ассоциация не сохраняет (TypeError)

Хранить has_many элементы, а item принадлежит_to Store

Я делаю новый магазин, спаси его, все хорошо. Я проверяю, что могу вызвать .items на нем.

ruby-1.9.2-p290 :063 > s.items
  Item Load (0.3ms)  SELECT "items".* FROM "items" WHERE "items"."store_id" = 12
 => [] 

Но когда я пытаюсь вызвать create или valid? он возвращает следующее:

ruby-1.9.2-p290 :064 > s.items.create
  Store Load (0.7ms)  SELECT "stores".* FROM "stores" WHERE "stores"."id" = 12 LIMIT 1
TypeError: Cannot visit Store

Я до сих пор не видел следующую ошибку, так что это делает мою голову!


EDIT: после капли и ремиграции все равно получите следующее:

    ruby-1.9.2-p290 :008 > Item.create(:store_id => 5)
  Store Load (0.2ms)  SELECT "stores".* FROM "stores" WHERE "stores"."id" = 5 LIMIT 1
TypeError: Cannot visit Store
4b9b3361

Ответ 1

Если кто-то еще столкнется с этой проблемой, Это оказалось проблемой проверки с моделью "Товар". Первоначально у меня была эта настройка:

  validates :name, :presence => true, uniqueness => { :scope => :store }         

С помощью только что настроенной области: store. Оказалось, что мне нужно явно указать: store_id:

  validates :name, :presence => true, uniqueness => { :scope => :store_id }