Thanks Frederick.... I see what you are saying. So I learned something new,
and it turns out the actual issue was that I forgot to run the migration
where I munged cleartext in to encrypted.

On Mon, Jul 19, 2010 at 5:06 PM, DK <[email protected]> wrote:

> 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]<rubyonrails-talk%[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]<rubyonrails-talk%[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.

Reply via email to