attr_accessor :password

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!

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!

Where can one find this example?

-Conrad

Conrad Taylor wrote:

Conrad Taylor wrote:

may have noticed that value to authenticate a user’s login credentials.

"

but i ddn understand clearly… can any explain in better way!

Where can one find this example?

-Conrad

i got dat from tutorial . for me the expalnation was not dat gud

so can any one help me with dat

Where’s the complete class?

Conrad Taylor wrote:

>> > > Where can one find this example? > > -Conrad

i got dat from tutorial . for me the expalnation was not dat gud so can any one help me with dat

Where's the complete class?

require 'digest/sha2' class User < ActiveRecord::Base   attr_protected :hashed_password, :enabled   attr_accessor :password   validates_presence_of :username   validates_presence_of :email   validates_presence_of :password, :if => :password_required?   validates_presence_of :password_confirmation, :if => :password_required?   validates_confirmation_of :password, :if => :password_required?   validates_uniqueness_of :username, :case_sensitive => false   validates_uniqueness_of :email, :case_sensitive => false   validates_length_of :username, :within => 3..64   validates_length_of :email, :within => 5..128   validates_length_of :password, :within => 4..20, :if => :password_required?   validates_length_of :profile, :maximum => 1000   def before_save     self.hashed_password = User.encrypt(password) if !self.password.blank?   end   def password_required?     self.hashed_password.blank? || !self.password.blank?   end   def self.encrypt(string)     return Digest::SHA256.hexdigest(string)   end end

Conrad Taylor wrote:

Where can one find this example?

-Conrad

i got dat from tutorial . for me the expalnation was not dat gud

so can any one help me with dat

Where’s the complete class?

require ‘digest/sha2’

class User < ActiveRecord::Base

attr_protected :hashed_password, :enabled

attr_accessor :password

validates_presence_of :username

validates_presence_of :email

validates_presence_of :password, :if => :password_required?

validates_presence_of :password_confirmation, :if =>

:password_required?

validates_confirmation_of :password, :if => :password_required?

validates_uniqueness_of :username, :case_sensitive => false

validates_uniqueness_of :email, :case_sensitive => false

validates_length_of :username, :within => 3…64

validates_length_of :email, :within => 5…128

validates_length_of :password, :within => 4…20, :if =>

:password_required?

validates_length_of :profile, :maximum => 1000

def before_save

self.hashed_password = User.encrypt(password) if

!self.password.blank?

end

def password_required?

self.hashed_password.blank? || !self.password.blank?

end

def self.encrypt(string)

return Digest::SHA256.hexdigest(string)

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”.

Good luck,

-Conrad

Conrad Taylor wrote: