开发者

attr_encrypted with rails

I'm using attr_encrypted in my rails app and it is not working as expected. What am I doing wrong?

My schema looks like this:

ActiveRecord::Schema.define(:version => 20110226214519) do

  create_table "entries", :force => true do |t|
    t.string   "title"
    t.string   "encrypted_username"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

end

My Model:

class Entry < ActiveRecord::Base

  # Setup accessible (or protected) attributes for your model
  attr_accessible :title, :username
  attr_encrypted :username :key => '&@it)a|S_eouL-hnBq^BJ_!]&A+3pTaw9|N;,kYMD(s.*/UmQD8F|-`HC<#<Qm'

  validates :title, :presence => true
end

then in my console run

e = Entry.new({ :title => 'title' })
e.encrypted_username # returns nil
e.username = "username"
e.encrypted_username # returns nil, but I'm expecting the encrypted value

Then when I run y e, I get

--- !ruby/object:Entry 
attributes: 
  title: title
  encrypted_username: 
  created_at: 
  updated_at: 
attributes_cache: {}

changed_attributes: 
  title: 
destroyed: false
encrypted_username: |
  VHlAnnaz+sPlBXzp95Lvgw==

marked_for_destruction: false
new_record: true
previously_changed: {}

readonly: false
username: username

I see the instance method for the encrypted_use开发者_运维问答rname, but it doesn't make it into my db when I save it. Is my issue obvious to anyone out there?

Any insight is greatly appreciated.


I already replied on github, but I'll throw some comments here as well to help anyone else who might run into this issue. In short, there's an issue with the current attr_encrypted gem when running under Rails 3 where it simply never populates the encrypted_ property. It's been fixed in a fork, but there hasn't been any activity on the original project in almost a year.

See https://github.com/shuber/attr_encrypted/issues#issue/2 for more info, and consider giving https://rubygems.org/gems/spectator-attr_encrypted a try.


Apparently, this is a known issue with this gem.

See https://github.com/shuber/attr_encrypted/issues#issue/2

Instead, you need to use the forked and updated gem for rails 3 and ruby 1.9.2 here:

https://rubygems.org/gems/spectator-attr_encrypted

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜