ruby-on-rails - rubyonrails - ruby on rails tutorial
Rieles 2.3.11-Validar solo en Crear (2)
TL; DR; Ejemplo completo:
class MyPerson < ActiveRecord::Base
validate :age_requirement
private
def age_requirement
unless self.age > 21
errors.add(:age, "must be at least 10 characters in length")
end
end
end
Para ejecutar el validador solo si se está creando un nuevo objeto, puede cambiar la segunda línea del ejemplo para: validate :age_requirement, on: :create
Solo en actualizaciones: validate :age_requirement, on: :update
Espero que ayude a la siguiente persona!
Estoy tratando de hacer que mi validación personalizada funcione en create
. Pero cuando hago una find
continuación, guardo, Rails lo trata como create
y ejecuta la validación personalizada. ¿Cómo puedo hacer que las validaciones solo funcionen al crear un nuevo registro y no en la actualización de un registro encontrado?
El título de su pregunta especifica los rieles 2.3.11, pero su etiqueta muestra los rieles 3.1. Estoy tomando el título para ser la versión real que necesitas.
Prueba esto en tu línea de código de validación:
validate :custom_validation, :on => :create
esto especifica que solo se ejecute la validación en la acción de create
. Aquí está el enlace a los apidocs