¿Hay alguna manera de desencadenar la validación solo en formularios específicos (acción del controlador), no globalmente en cada operación de guardado o actualización? Algo así como User.create(:validate=>true)
bandera.Validación solo en forma específica
Respuesta
Sí, puede proporcionar condicionales a las validaciones, por ejemplo:
validates_presence_of :something, :if => :special?
private
def make_sepcial
@special = true
end
def special?
@special
end
Ahora todo lo que tiene que hacer para activar estas validaciones es:
s = SomeModel.new
s.make_special
Entonces, tengo que configurar especial a falso después de guardar el modelo, ¿verdad? – methyl
No. '@ special' es solo una variable de instancia. A menos que tenga más trabajo que hacer, puede dejar que se muera, pero no persistirá en otras consultas de bases de datos. – thomasfedb
Como se ha explicado en los comentarios, desea omitir la validación de nuevos registros. En ese caso, puede utilizar la respuesta de thomasfedb, pero no use la variable @special
, pero:
validates_presence_of :something, :if => :persisted?
Esto validará sólo por guardados User
s, pero no para los nuevos User
s. Consulte la documentación de API en persisted?
.
También puede usar: unless =>: persisted? si desea la validación inversa, en la nueva, pero no para la guardada. –
Esta es la respuesta correcta – doz87
Esto es un poco viejo. Pero encontré que http://apidock.com/rails/Object/with_options es una buena forma de manejar este tipo de comportamiento.
- 1. Delphi, ¿es posible hacer una forma modal a una forma primaria específica solo?
- 2. Captura solo una HttpException específica
- 3. descomprimir solo la extensión específica
- 4. jquery validación solo para controles visibles
- 5. Extracción solo del css utilizado en una página específica
- 6. Validación de campo de un solo botón
- 7. una forma en C++ para ocultar una función específica
- 8. Cómo reconocer histogramas con una forma específica en opencv/python
- 9. Divs poligonales: ¿hacer desbordamiento de contenido en una forma específica?
- 10. jQuery deshabilitar la validación de reglas en un solo campo
- 11. Validación JQuery - Deshabilitar onfocusout para un solo campo
- 12. Server side XForms forma validación e integración en ASP.NET
- 13. forma Django falla la validación en un campo único
- 14. CodeIgniter - repoblar forma en la validación fallida después de presentar
- 15. Cómo firmar solo una parte específica de XML
- 16. jquery obtener toda la información de la forma específica
- 17. iOS - Animación de volteo solo para vista específica
- 18. Hacer que una columna específica solo acepte valores numéricos en datagridview en Keypress event
- 19. Evento WPF FileDrop: solo permite una extensión de archivo específica
- 20. Obtener solo métodos con firma específica de Type.GetMethods()
- 21. ¿Es posible asignar múltiples grupos de validación a un solo control de validación?
- 22. Desactivar validación de entrada para un solo campo
- 23. jQuery Validate Plugin - Activación de validación de un solo campo
- 24. ¿Activación de múltiples grupos de validación con un solo botón?
- 25. Plugin de validación de jQuery: ¿solo acepta caracteres alfabéticos?
- 26. Validación de Mvc ¿solo números de expresión regular?
- 27. Django formset forma de gestión de errores de validación
- 28. Deshabilitar una advertencia específica en una línea específica en Xcode
- 29. Validación en texto swt
- 30. Destrabar archivo rastreado en Git, pero solo en una rama específica?
¿Por qué intentas hacer esto? Quizás podamos dar una mejor respuesta si conocemos los motivos de su pregunta. – rdvdijk
Tengo un problema con el modelo de usuario, no separado del perfil, cuando te registras necesitas proporcionar solo algunos campos y el resto es completarlo desde editar la acción del usuario. – methyl
Por cierto, puede pasar todas las validaciones de ese modo: Model.save (falso) – emrahbasman