0
class Person
  validates :full_name, presence: true
  validates :display_name, unique: ???
  attr_acessible :full_name, :display_name
end

氏名は一意にすることはできませんが、表示名は一意にする必要があります。フォールバックとして full_name を使用したいが、それでも display_name の一意性を確認したい場合。

coalesce(display_name, full_name)同じ効果を達成するために必要なものの一意性を検証する最もクリーンな方法は何ですか?

4

1 に答える 1

-1

これはあなたが求めているものかもしれません。そうでない場合は、合体についてさらに説明してください validates :display_name, uniqueness => true

アップデート

コメントの追加情報の後

validates :display_name, :uniqueness => {:scope => :full_name}

これが要件と同等でない場合は、

validates :coalesce

def coalesce
  #put your validation in the method here i.e
  if self.display_name == false
    #then check full_name etc.
  end
end
于 2013-01-14T01:42:12.697 に答える