On 14 October 2011 15:53, Dave Castellano <[email protected]> wrote: > I am having a problem finding the best way to make a "before_save > :encrypt_password" conditional. > > I have to at times update user model attributes but each time I do this > the password is reencrypted because of the above. I need to > differentiate between when the user is first logging in and the password > does need to be encrypted, and when they are already logged in and the > "before_save :encrypt_password" should not be called.
I would typically do something like this upon setting the attribute - so it gets saved as normal as necessary. Create your own method, and handle the encryption in there. Something along the lines of: # user.rb def password=(value) attributes[:password] = FunkyEncryptionModule::encrypt(value) end I *actually* generally extract passwords out to their own model (if I don't use an authorization gem), with a belongs_to :user association, so the Password object stores all its own information regarding hashed-value/salt/expiry-date/etc. -- 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.

