1

我有产品和品牌产品型号:

class Product < ActiveRecord::Base
  attr_accessible :brand_id, :title
  belongs_to :brand

  validates :title, :presence => true
  validates :brand, :presence => {:message => 'The brand no exists'}
end

和品牌模型

class Brand < ActiveRecord::Base
  attr_accessible  :name
  validates :name, :presence => true

  has_many :products, :dependent => :destroy
end

我想验证是否存在具有该品牌名称的产品。我的意思是我可以在不同品牌中拥有 2 件同名的产品,但不在同一个品牌中。

4

1 回答 1

1

您可以使用以下uniqueness验证scope

validates :name, :uniqueness => { :scope => :brand_id }

请注意,您必须指定:brand_id而不是:brand,因为无法对关系进行验证。

如果您不知道,我建议您阅读Active Record Validations and Callbacks指南。

注意:语法{:foo => 'bar'}被替换(自 Ruby 1.9.2 起)为{foo: 'bar'}.

于 2012-09-07T11:57:24.603 回答