Quiero ser capaz de reemplazar un error de campo con una advertencia al guardar/actualizar un modelo en rieles. Básicamente quiero escribir sólo una envoltura alrededor de los métodos de validación que va a generar el error, guardar el modelo y quizás esté disponible en un hash advertencias (que funciona igual que el hash errores):ActiveRecord - reemplace el error de validación del modelo con advertencia
class Person < ActiveRecord::Base
# normal validation
validates_presence_of :name
# validation with warning
validates_numericality_of :age,
:only_integer => true,
:warning => true # <-- only warn
end
>>> p = Person.new(:name => 'john', :age => 2.2)
>>> p.save
=> true # <-- able to save to db
>>> p.warnings.map { |field, message| "#{field} - #{message}" }
["age - is not a number"] # <-- have access to warning content
Cualquier idea de cómo Podría implementar esto? Pude agregar el valor predeterminado de :warning => false
a ActiveRecord::Validations::ClassMethods::DEFAULT_VALIDATION_OPTIONS
Extendiendo el módulo, pero estoy buscando información sobre cómo implementar el resto. Gracias.
muy fresco, gracias! – sa125
La versión de gema 0.5.1 es compatible con los rieles 3, pero un simple cambio en gemspec (consulte https://github.com/ivalkeen/validation_scopes/commit/acc1545a028605997e87fd41efece0ddffd3b999) permite su uso en rieles 4. – KenB