A有两个模型,“shop”和“product”,通过has_many:through链接。Rails 3:嵌套字段的唯一性验证_
在商店窗体中存在多个产品的嵌套属性,并且我在产品的唯一性验证方面遇到了一些问题。如果我输入产品,保存它,然后尝试为新产品输入相同的名称,则会成功触发唯一性验证。
但是,如果我在同一个嵌套表单的两行中输入相同的产品名称,表单将被接受 - 唯一性验证不会触发。
我猜这是一个相当普遍的问题,但我找不到任何简单的解决方案。任何人有最简单的方法来确保在嵌套表格嵌套表格内符合唯一性验证的任何建议?
编辑:包括以下
class Product < ActiveRecord::Base
has_many :shop_products
has_many :shops, :through => :shop_products
validates_presence_of :name
validates_uniqueness_of :name
end
您可以随时((http://railswarts.blogspot.com/2007/11/validatesuniquenessof-is- broken-and.html))在您的数据库中使用唯一索引返回唯一性验证。它会停止像你看到的重复,但它不会很好 - 它只会抛出一个异常保存...也许你可以写一个自定义验证功能来照顾这个? – 2011-03-30 07:03:36
你的'产品'看起来像什么? – 2011-03-30 07:03:36
杰弗里:产品型号上面加 – PlankTon 2011-03-30 07:10:00