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 }

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...