validator validations validates_presence_of validates validate rails method greater_than custom create ruby-on-rails validation

ruby-on-rails - validations - rails validates if



Rieles: ¿cómo puedo validar que algo es un booleano? (3)

¿Los rieles tienen un validador como validates_numericality_of para boolean o necesito transferir el mío?


Creo que para un campo booleano necesitarás hacer algo como:

validates_inclusion_of :field_name, :in => [true, false]

Desde una versión anterior de la API : "Esto se debe a la forma en que Object # blank? Maneja los valores booleanos. False.blank? # => True"

No estoy seguro si esto todavía estará bien para Rails 3, ¡espero que haya sido útil!


Cuando aplico esto, obtengo:

Advertencia de shoulda-matchers:

Está utilizando validate_inclusion_of para afirmar que una columna booleana permite valores booleanos y no permite valores booleanos. Tenga en cuenta que no es posible probarlo completamente, ya que las columnas booleanas convertirán automáticamente los valores no booleanos en booleanos. Por lo tanto, debería considerar eliminar esta prueba.


Desde Rails 3, puedes hacer:

validates :field, inclusion: { in: [ true, false ] }