Ver Mensaje Individual
  #10 (permalink)  
Antiguo 14/01/2011, 20:22
viriathus
 
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 8
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Validación en controller o en model?

La verdad es que yo suelo validar en el modelo porque entiendo que es el responsable de su contenido. De hecho, la capa modelo contiene la lógica del negocio, así que tiene sentido que sea autosuficiente.

Esa capa modelo es compartida por distintos controllers (ya sean servicios web, scripts que corren en un cron, páginas web, ... ), y estos leen y pasan datos.

Creo que en RubyOnRails dentro del activeRecord se definen las reglas de validación, por ejemplo:

Código PHP:
class Nota ActiveRecord::Base 
    validates_presence_of 
:titulo, :intro, :texto  
    validates_length_of 
:titulo, :minimum => , :maximum => 120
        
validates_length_of :intro, :maximum => 250, :too_long => "Usted ingreso mas caracteres que los {{count}} permitidos" 
end 
Respecto a validar con javascript en el lado del cliente, suelo seguir este esquema:

formulario web -> (ajax, envío campos del formulario) -> controlador -> modelo (valida datos) -> controlador -> (json) -> formulario web

Lo que pasa es que como en todos los sitios veo la validación en el controlador, quería compartir mis dudas con otros programadores.

Validar en los controladores puede ser útil cuando implique a varios modelo a la vez, pero sigo teniendo mis dudas.

Para mí, lo ideal es tener una capa modelo robusta, con consistencia, que implemente toda la lógica del negocio sin necesidad de controladores ni vistas, y para que eso se cumpla debe poder autovalidarse.