Por eso, pero no existe tal cosa como: @foo dónde foo es una columna

Claro, pero sí existe self.foo donde foo es una columna y a eso apuntaba yo.
Uno usualmente hace self.foo automáticamente sin declararlo, cuando usás
Rails con AR. Y esa costumbre de usar self.foo puede llevarte a pensar que
podés acceder a @algo como self.algo sin declararlo (al menos es lo que me
pasó a mi, pensaba que self era una especie de "this" de c#/Java, por
ejemplo, y en AR mapea a atributos, pero usualmente uno lo usaría para
mapear a variables privadas y de ahí la conexión), y es lo que hizo que, por
ejemplo, no tuviera ni idea de la existencia de @attributes hasta entrar a
este thread.

Ya es una tontería seguir discutiendo esto, pero mi previa confusión con
respecto al self viene de AR.

El 25 de noviembre de 2009 16:23, Gaston Ramos <[email protected]>escribió:

> El Wed, 25 de Nov de 2009, a las 04:27:06PM -0200, Bizancio Spirit dijo:
> > Pero los campos de columnas no tienen nada que ver con variables de
> > instancia
> > de una clase.
> >
> > Si tienen que ver! :D Porque Rails te mapea las columnas que pongas en la
> > migration y te permite acceder a esos valores desde los models sin poner
> una
> > línea de código. Internamente supongo, como dijeron por ahí también, te
> crea
> > los getters, y te pone los valores en @attributes.
> Por eso, pero no existe tal cosa como: @foo dónde foo es una columna
>
> >
> > El 25 de noviembre de 2009 15:42, Gaston Ramos <[email protected]
> >escribió:
> >
> > > El Wed, 25 de Nov de 2009, a las 02:51:03PM -0200, Bizancio Spirit
> dijo:
> > > > (Además, ActiveRecord guarda los atributos en @attributes[:foo], por
> > > > lo que @foo no funciona.)
> > > > Eso responde a mi duda.
> > > >
> > > > En cuanto a lo otro, sigo pensando que un poco es confuso por eso.
> Usando
> > > > AR, es normal hacer un self.mi_campo sin pensar en que normalmente
> > > > deberíamos declarar ese accesor.
> > >
> > > Pero los campos de columnas no tienen nada que ver con variables de
> > > instancia
> > > de una clase.
> > >
> > > _______________________________________________
> > > Ruby mailing list
> > > [email protected]
> > >
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
> > >
>
> > _______________________________________________
> > Ruby mailing list
> > [email protected]
> > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
> --
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a