ruby-on-rails – Rails 3 – has_many关联不保存(TypeError)

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails 3 – has_many关联不保存(TypeError)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
存储has_many项目和一个Item belongs_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

我以前从来没有看到以下错误,所以这是我的头!

编辑:下降和转移后,仍然得到以下内容

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

解决方法

如果有人遇到这个问题,
原来是“Item”模式的验证问题.本来我已经设置了:
validates :name,:presence => true,uniqueness => { :scope => :store }

范围刚刚设置为:存储.原来我需要显式声明:store_id:

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

猜你在找的Ruby相关文章