[Ror-es] Error en read_attribute
Daniel Rodriguez Troitiño
notzcoolx at yahoo.es
Thu Sep 6 09:38:15 GMT 2007
On 9/6/07, Jose Francisco Gonzalez <josefgon at gmail.com> wrote:
> Me he bajado este codigo de internet para que me devuelva la edad
> segun la fecha de nacimiento
>
> def self.age
> years = Date.today.year - read_attribute(:birthdate).year
> if Date.today.month < read_attribute(:birthdate).month ||
> (Date.today.month == read_attribute(:birthdate).month &&
> read_attribute(:birthdate).day >= Date.today.day)
> years = years - 1
> end
> return years
> end
>
> Lo he puesto en el modelo pero al ejecutarlo desde la vista me da el error
>
> undefined method `read_attribute' for User:Class
>
> Lo curioso es que dentro de ese mismo modelo tengo este otro que si
> funciona bien pero con write_attribute
>
> def fill_data_create
> write_attribute "password", self.class.sha1(password)
> end
>
> ¿A que puede ser debido?
El método no debería ser de clase, si no de instancia, es decir,
deberías eliminar "self." de la definición. Creo que con eso
funcionaría.
> Otra cosa, ¿existe algo en MySQL para calcular directamente la edad
> desde un campo con la fecha de nacimiento?
>
No lo se, pero las bases de datos están para almacenar datos, Ruby
sirve muy bien para calcular esos datos. Cada uno con su tarea.
More information about the Ror-es
mailing list