2012-02-23 29 views

Trả lời

8

Bạn có thể thêm một xác nhận tùy chỉnh:

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 

Điều đó sẽ được gọi mỗi khi đối tượng của bạn được xác nhận (hoặc rõ ràng hoặc khi bạn lưu với xác nhận) và sẽ thêm lỗi vào cả hai trường. Bạn có thể muốn có lỗi trên cả hai trường để hiển thị chúng khác nhau trong biểu mẫu.

Nếu không, bạn có thể chỉ cần thêm một lỗi cơ bản:

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

Trong mô hình của bạn:

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 
Các vấn đề liên quan