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
Ответы
Ответ 1
Если кто-то еще столкнется с этой проблемой,
Это оказалось проблемой проверки с моделью "Товар". Первоначально у меня была эта настройка:
validates :name, :presence => true, uniqueness => { :scope => :store }
С помощью только что настроенной области: store. Оказалось, что мне нужно явно указать: store_id:
validates :name, :presence => true, uniqueness => { :scope => :store_id }