Thank you, but I knew that, I did that (use self to do what I want) before I asked the question.
I'd just like to know why can't I use @first_name instead of self.first_name, to me it seems like the same thing inside the model. On Mon, Jan 30, 2012 at 6:25 PM, Peter Vandenabeele <[email protected]>wrote: > On Mon, Jan 30, 2012 at 9:09 PM, Rodrigo Ruiz <[email protected]>wrote: > >> Hi, I'd like to know why I can't, or how can I, access attributes like >> that: >> >> class User < ActiveRecord::Base >> def name >> @first_name + @last_name >> end >> end >> >> first_name and last_name are user attributes in the database. >> > > ActiveRecord dynamically defines "accessor methods" on the > user instance. > > That user instance is accessible as 'self' inside the user instance, > so you could do > > class User < ActiveRecord::Base > def name > self.first_name + self.last_name > end > end > > But, in Ruby, when using a _read_ accessor, you could also write it > without the explicit 'self'. > > class User < ActiveRecord::Base > def name > first_name + last_name > # same as self.first_name + self.last_name > # if there is no first_name, last_name local variable > # defined in the scope > end > end > > For _write_ accessors, you _must_ put the self in front, that is: > > self.full_name = "#{first_name} #{last_name}" > > And the @first_name you asked about, that is an "instance variable". > > Read one of the many Ruby tutorials or books to understand this better. > > HTH, > > Peter > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

