2012-02-23 6 views
6

レコードを保存する前にtext_fieldの値が等しくないことを検証する方法はありますか?私はそれらの中に整数を持つ2つのtext_fieldsを持っており、レコードが有効であるために同一であることはできません。お使いのモデルで1つの値が別の値と等しくない罫線の検証

答えて

8

あなたはカスタム検証を追加することができます。

class Something 
    validate :fields_a_and_b_are_different 

    def fields_a_and_b_are_different 
    if self.a == self.b 
     errors.add(:a, 'must be different to b') 
     errors.add(:b, 'must be different to a') 
    end 
    end 

あなたのオブジェクトが検証されるたびに呼び出されます(明示的またはときに検証して保存)し、両方のフィールドにエラーが追加されます。両方のフィールドにエラーを表示して、フォーム内の表示方法を異ならせることができます。

errors.add(:base, 'a must be different to b') 

は、そうでなければあなただけのベースにエラーを追加することができます

5

validate :text_fields_are_not_equal 

def text_fields_are_not_equal 
    self.errors.add(:base, 'Text_field1 and text_field2 cannot be equal.') if self.text_field1 == self.text_field2 
end 
関連する問題