私はRails 2.3アプリを維持しており(Rails 4に移行すると多くのことが壊れました)、パスワードをデータベースにプレーンテキストで保存する代わりに暗号化/復号化しようとしています。
attr_encrypted gemの指示に従って、追加しました
gem "attr_encrypted"
私のGemfileに、bundle installを実行しました-すべて満足しています。
次に、指示に従って、新しいフィールド encrypted_password をテーブルに移行し、app/models/serverobj.rb に 1 行を追加しました。
attr_encrypted :password, :key => 'foo'
しかし、そこを参照すると、次のようなスタック トレースが表示されます。
=> Booting WEBrick...
/home/art/vendor/rails/activerecord/lib/active_record/base.rb:1833:in `method_missing_without_paginate': undefined method `attr_encrypted' for #<Class:0x7f009f372200> (NoMethodError)
from /home/art/vendor/plugins/will_paginate/lib/will_paginate/finder.rb:164:in `method_missing'
from /home/art/app/models/serverobj.rb:17
...
from /home/art/config/environment.rb:70
serverobj.rb
、17行目は次のとおりです。
attr_encrypted :password, :key => 'foo'
environment.rb
、70行目は次のとおりです。
Rails::Initializer.run do |config|
config.load_paths += %W( #{RAILS_ROOT}/vendor/gems/ #{RAILS_ROOT}/app/exceptions/ )
あはは!attr_encrypted gem を load_paths に含めてはいけません。で attr_encrypted gem を見つけ、それを の行に/var/lib/gems/1.8/gems/
追加しました。 config.load_paths
environment.rb
しかし、まだ「未定義のメソッド attr_encrypted」が表示されます。
試してみたいものがなくなってきました。何か案は?