我有这些模型:
subdomain
company
tool
code
代码belongs_to工具,工具到公司和公司到子域。
我想验证子域中代码的唯一性。我怎样才能做到这一点?
我知道如何使用范围在工具范围内获得唯一性,如下所示:
validates :codevalue, :uniqueness => {:scope => :tools_id}
但如何为上述两个父母的范围做到这一点?
我正在使用最新的rails版本。
答案 0 :(得分:3)
我用这样的自定义验证解决了它:
def validate_uniqueness_in_subdomain
Barcode.where(:value => self.value).each do |code|
next if code.eql?(self)
if (self.tool.company.subdomain.id == code.tool.company.subdomain.id)
errors.add(:unique_error, "This barcode is already in use")
break
end
end
end