这是我经常遇到的问题,我不太清楚为什么。任何建议表示赞赏:
假设我有 shop 和 book 的关系(book 属于 shop,shop 有很多书)
如果我运行以下代码:
shop = Shop.first
Book.new(:name => 'Naked People', :shop => shop)
我去拿
ActiveRecord::AssociationTypeMismatch: Shop(#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 控制器测试,事情不工作
有任何想法吗?我似乎经常遇到这种情况,但我很难过:解决方案