3

我有这些模型:

subdomain
company
tool
code

代码 belongs_to 工具、公司工具和子域公司。
我想验证子域中代码的唯一性。我怎样才能做到这一点?我知道如何使用范围在工具范围内获得唯一性,如下所示:

validates :codevalue, :uniqueness => {:scope => :tools_id}

但是如何为以上两个父母的范围做到这一点?

我正在使用最新的 Rails 版本。

4

1 回答 1

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
于 2012-09-26T12:09:40.743 回答