attr_accessor :password
dis is small bit of code i have seen in a tutorial .
in that example there is no field called password in the database, so
how can rails understand its the password field of my database. in my
database i have given password field as hashed_password
i got an explanation form the tutorial as given below
" The attr_accessor statement specifies the attribute password. You
may have noticed that
this doesn’t actually exist as a field in the database migration. This
declares that password is an
attribute of the model even though it doesn’t exist as a database field.
The model will be able to
use the data from this field to create the hashed_password field. You
will notice that this is done
by the before_save filter. This will simply set the hashed_password
field to be a hash of the clear
password which, as stated in our specification, we can compare to the
stored hashed_password
value to authenticate a user’s login credentials.
"
but i ddn understand clearly… can any explain in better way!
validates_presence_of :username
:password_required?
end
end
‘attr_accessor :password’ will generate two instance methods for class
User
similar
to the following:
def password=(val) @password = val
end
def password @password
end
From the above, the instance variable, password, is brought into
scope within the User class when ‘@password = val’ is executed. In
Ruby, you can add an instance variable to a class by simply assigning
a value to instance variable within an instance method. Then executing
it. Finally, I would recommend learning more about Ruby by reading
“Programming Ruby” or “Programming Ruby 1.9”.