Ps rails 2.3.5 ruby 1.8.7 On 7/19/10, David Kahn <[email protected]> wrote: > Would really appreciate it if someone could tell me why this is happening: > > I override ssn method of AR class so I can encrypt/decrypt to/from the db: > > class Person < ActiveRecord::Base > def ssn=(value) > write_attribute(:borrower_ssn, Crypto.encrypt(self.encryption_key, > value)) > write_attribute(:borrower_ssn_final_four, value[5,4]) > end > > def ssn > # this begin - rescue can be removed once all data is encrypted > begin > return Crypto.decrypt(self.encryption_key, > read_attribute(:borrower_ssn)) if read_attribute(:borrower_ssn) && > self.encryption_key > rescue > return read_attribute(:borrower_ssn) if read_attribute(:borrower_ssn) > && self.encryption_key > end > nil > end > end > > However, when I do Person.find(27) I get: > > #<Person id: 27, ssn: "l+IV+c55qywTjPd+bW+IGA==\n" > > > And then if I do p = Person.find(27), then I get the decrypted ssn. > > I know that find must be processing under the override methods, but I dont > understand why, as I thought if you overrode a method it would hold in all > situations for the AR object. > > David > > -- > 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. > >
-- Sent from my mobile device -- 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.

