Esto es lo que esperaba que fuera una pregunta perfectamente directa, pero no puedo encontrar una respuesta definitiva en las Guías ni en ninguna otra parte.Rails 3 Validación: presence => false
Tengo dos atributos en un ActiveRecord. Quiero exactamente uno para estar presente y el otro para ser nil o una secuencia en blanco.
¿Cómo hago el equivalente a: presence => false? Quiero asegurarme de que el valor sea nulo.
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?"
O quizás hay una manera más elegante de hacer esto ...
estoy carriles de rodadura 3.0.9
No estoy seguro de lo que necesita el: presencia => false en absoluto en las dos últimas líneas de código . – creativetechnologist
@creativetechnologist Necesita una prueba de algún tipo. Si me deshago de la validación de presencia, me da: C: /Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3. 0.9/lib/active_model/validations/validates.rb: 79: en 'validates ': Debe proporcionar al menos una validación (ArgumentError) – LikeMaBell
. Vale la pena señalar para Rails 4 que esto se llama' validates_absence_of'. – mpowered