如何在Rails 3.1中使用验证来强制复合唯一性?

AKW*_*KWF 5 activerecord ruby-on-rails-3

我有一个属于Brand的客户模型.客户只有名称和标识符(字符串)作为属性.我想仅在特定品牌中强制执行名称和标识符的唯一性.如何强制执行该范围的唯一性?

Joh*_*lla 13

使用验证:scope参数:ActiveRecord::Validations#validates_uniqueness_of

validates_uniqueness_of :brand_id, :scope => [:name, :identifier]
Run Code Online (Sandbox Code Playgroud)

交替:

validates :brand_id, :uniqueness => {:scope => [:name, :identifer]}
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,这个说,"对于一个给定nameidentifier,则brand_id必须是唯一的."