Rails 3 - has_many关联未保存(TypeError)

时间:2011-12-11 10:59:18

标签: ruby-on-rails ruby-on-rails-3 activerecord

存储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

1 个答案:

答案 0 :(得分:37)

如果其他人遇到此问题, 结果是'Item'模型的验证问题。最初我有这个设置:

  validates :name, :presence => true, uniqueness => { :scope => :store }         

将范围设置为:store。原来我需要明确说明:store_id:

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