Tengo una clase de usuario y un contacto donde el contacto es una subclase de usuario. Ambas clases se almacenan en una tabla de usuarios.Rieles - Omita la validación de rieles para la subclase
Mis contactos pueden tener o no una dirección de correo electrónico, mientras que una dirección de correo electrónico es necesaria para mis usuarios (tengo validates_presence_of :email
en la definición de mi modelo de usuario).
Mi razonamiento es que los contactos son ingresados por los usuarios y más tarde pueden convertirse en usuarios cuando reclaman su perfil.
- En primer lugar, ¿está bien definir mis contactos y usuarios de la manera en que lo hice?
- En segundo lugar, ¿cómo omito la validación en mi modelo de contactos?
(Estoy en los carriles 2.3.8)
Gracias!
ACTUALIZACIÓN:
Parece herencia de tabla única se diseñado para hacer exactamente lo que necesitaba
de la manera correcta para omitir la validación de la presencia de correo electrónico para mi contacto tabla es como sigue:
validates_presence_of :email, :unless => Proc.new {|user| user.type == "Contact"}
En caso de no ser usuario de una subclase de contacto? Me parece que un Usuario * es un * Contacto que se registró. Pero un contacto no es necesariamente un usuario. Esto también resolvería su problema de validación, ya que la validación iría en el modelo de Usuario, negando la necesidad de una cláusula: unless. – Raphael