存储has_many项目和项目belongs_to商店
我开了一家新店,保存它,一切都很好。我检查一下我可以打电话给.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
答案 0 :(得分:37)
如果其他人遇到此问题, 结果是'Item'模型的验证问题。最初我有这个设置:
validates :name, :presence => true, uniqueness => { :scope => :store }
将范围设置为:store。原来我需要明确说明:store_id:
validates :name, :presence => true, uniqueness => { :scope => :store_id }