Đây là những gì tôi mong đợi là một câu hỏi hoàn toàn đơn giản, nhưng tôi không thể tìm thấy câu trả lời cuối cùng trong Hướng dẫn hoặc ở nơi khác.Rails 3 Xác thực: presence => false
Tôi có hai thuộc tính trên ActiveRecord. Tôi muốn chính xác một người có mặt và người kia là nil hoặc một chuỗi trống.
Làm cách nào để thực hiện tương đương với: presence => false? Tôi muốn chắc chắn rằng giá trị là không.
validates :first_attribute, :presence => true, :if => "second_attribute.blank?"
validates :second_attribute, :presence => true, :if => "first_attribute.blank?"
# The two lines below fail because 'false' is an invalid option
validates :first_attribute, :presence => false, :if => "!second_attribute.blank?"
validates :second_attribute, :presence => false, :if => "!first_attribute.blank?"
Hoặc có lẽ có một cách thanh lịch hơn để làm điều này ...
Tôi đang chạy Rails 3.0.9
Tôi không chắc chắn bạn cần có: sự hiện diện => sai chút nào trong hai dòng cuối cùng của mã . – creativetechnologist
@creativetechnologist Nó cần một thử nghiệm của một số loại. Nếu tôi thoát khỏi sự xác thực hiện diện: nó cho tôi: C: /Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3. 0.9/lib/active_model/validations/validates.rb: 79: trong 'validates ': Bạn cần cung cấp ít nhất một xác thực (ArgumentError) – LikeMaBell
Đáng chú ý cho Rails 4 rằng điều này được gọi là' validates_absence_of'. – mpowered