Rails 3 Модели: Может создавать / обновлять с помощью: association_id => association.id, но не: association => ассоциация - PullRequest
0 голосов
/ 24 августа 2011

Это проблема, с которой я регулярно сталкиваюсь, и я не совсем уверен, почему.Любые предложения приветствуются:

Предположим, у меня есть связь между магазином и книгой (книга принадлежит магазину, в магазине много книг)

Если я запускаю следующий код:

shop = Shop.first
Book.new(:name => 'Naked People', :shop => shop)

Я получу

ActiveRecord :: AssociationTypeMismatch: Ожидается магазин (# 70161677495100), получена строка (# 70161654862280)

Однако, если я запускаю

shop = Shop.first
Book.new(:name => 'Naked People', :shop_id => shop.id)

все отлично работает.

Другие вещи:

  • Не думаю, что это проблема attr_accessible.Я попытался удалить вызов attr_accessible из обеих моделей ... без изменений
  • Не думаю, что это проблема с ассоциацией.С консоли я могу создать Book.new (: name => 'Naked People',: shop => shop) без проблем.На данный момент из тестов rspec контроллер не работает

Есть идеи?Я, кажется, сталкиваюсь с этим довольно часто, но я озадачен ре: решение

...