単純な検証呼び出しで、またはバリデーターメソッドで2つの列からなる名前を検証するにはどうすればよいですか?2つの列で構成される名前の検証方法を教えてください。
私は、2つの列、firstname
およびsurname
からなる名前を持っています。レコードは、firstname + surname
が一意である場合にのみ有効です。
firstname: "lala la"
を追加すると、surname: "le li lo"
は唯一であるため有効です。
私はfirstname: "lala"
、surname: "la le li lo"
、およびfirstname
とsurname
の連結を入力した場合、2番目が有効ではありません、どちらの例でも同様です。
私はこれを行う簡単な方法を見つけることができません。
私はのようなもの試してみました:これの
validates_uniqueness_of :firstname, :surname, :scope => {:firstname, :surname}
またはそれらの組み合わせを、それはうまくいきませんでした。 validates_withで行うことができることが、あなたはどこ質問からご縁のケースをテストする場合、パフォーマンスに注意してください:
validates :surname, :uniqueness => { :scope => :firstname }
validates :firstname, :uniqueness => { :scope => :surname }
EDITを:
ここをクリックしてください:http://stackoverflow.com/questions/2291240/rails-models-and-unique-combinations – microspino
私は完全性を維持するために、データベース内のユニークな複合キーを使用しています。コードは、挿入と更新の際に例外に反応します。それは問題を処理する別の方法ですが、非常に伝統的であり、おそらくレガシーデータベースがどのようにセットアップされるのでしょうか。 –