3

私はこれらのモデルを持っています:

subdomain
company
tool
code

コード belongs_to ツール、ツールを会社に、会社をサブドメインに。
サブドメイン内のコードの一意性を検証したいと考えています。どうやってやるの?次のように、スコープを使用してツールスコープ内で一意性を取得する方法を知っています。

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

しかし、上記のスコープ2の親に対してそれを行う方法は?

私は最新の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 に答える