【发布时间】:2017-12-09 00:33:18
【问题描述】:
我有一个模型,其中包含“名称”和“大小”两列。仅当数据库中不存在名称和大小时,我才尝试验证大小的唯一性。
例如。
Name = Shirt 和 Size = L 在数据库中,然后 Name = Shirt 和 Size = L 不应该通过唯一性验证,而 Name = Pant 和 Size = L 应该通过唯一性。
【问题讨论】:
标签: ruby-on-rails ruby activerecord
我有一个模型,其中包含“名称”和“大小”两列。仅当数据库中不存在名称和大小时,我才尝试验证大小的唯一性。
例如。
Name = Shirt 和 Size = L 在数据库中,然后 Name = Shirt 和 Size = L 不应该通过唯一性验证,而 Name = Pant 和 Size = L 应该通过唯一性。
【问题讨论】:
标签: ruby-on-rails ruby activerecord
如果你想用单列限定范围,那么:
validates_uniqueness_of :name, :scope => :size, message: "should be unique"
对于多列:
validates :name, uniqueness: {scope: [:size, :attr1, :attr2]}
【讨论】:
在这里你可以这样做
validates :name, uniqueness: { scope: :size,
message: "should be unique" }
【讨论】: