2009-10-27 11 views
72

オブジェクト(行)の2つのフィールドの一意性を検証してから追加する必要があります。 Employee_idとarea_idは、emp_areaテーブルの2つのフィールドです。同じemployee_idを持つ複数のレコードと、同じarea_idを持つ複数のレコードが存在する可能性がありますが、2つのレコードが同じemployee_idと同じarea_idを持つことはできません。これは、プライマリキーまたはユニークキーを構成する2つのフィールドのようなものです。2つのフィールドの一意性を検証する方法

どうすればいいですか?

おかげで、それはあなたに感謝した

+0

! – johnc

+0

[Ruby on RailsでIDのペアの一意性をどのように検証するのですか?](http://stackoverflow.com/questions/923796/how-do-you-validate-uniqueness-of-a-pair- –

答えて

69
validates_uniqueness_of :employee_id, :scope => :area_id 
96

何このソリューションについてValidate combined values

validates :employee_id, uniqueness: { scope: :area_id } 
+3

これは 'validates_uniqueness_of'よりも好ましいと思われます。これは、同じフォーム上で複数のバリデーションを設定できるようにするためです。例えば、 「存在:真」。 –

+0

私が作成したエラーメッセージの正しいハイライトについては が有効です:area_id、一意性:{scope:employee_id} – Mauro

関連する問題