6
有沒有一種方法可以在保存記錄之前驗證一個text_field不等於另一個text_field?我有兩個text_fields整數在他們和他們不能相同的記錄是有效的。Rails驗證一個值不等於另一個值
有沒有一種方法可以在保存記錄之前驗證一個text_field不等於另一個text_field?我有兩個text_fields整數在他們和他們不能相同的記錄是有效的。Rails驗證一個值不等於另一個值
您可以添加自定義驗證:
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')
在你的模型:
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