我有产品和品牌 产品型号:
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种产品,但不能使用同一品牌。
答案 0 :(得分:1)
您可以将uniqueness
验证与scope
:
validates :name, :uniqueness => { :scope => :brand_id }
请注意,您必须指定:brand_id
而不是:brand
,因为无法对关系进行验证。
如果您不知道,建议您阅读Active Record Validations and Callbacks指南。
注意:语法{:foo => 'bar'}
被{foo: 'bar'}
替换(自Ruby 1.9.2起)。