私はhas_secure_passwordで遊んでいましたが、問題が発生しました。私のUsersControllerのアクションを作成するための私のテストは
の作業ではありませんでした。だから私はコンソールで遊んで始め、パスワードがハッシュに変換されずにpassword_digestフィールドに保存されていることに気付きました。Rails 3.1.1 has_secure_passwordダイジェストは空白にできません
コンソールからユーザーを作成しようとすると、次のようなことが起こります。
irb(main):031:0> u = User.new(:email => "[email protected]", :password => "test", :password_confirmation => "test")
=> #<User id: nil, email: "[email protected]", password_digest: nil, created_at: nil, updated_at: nil>
irb(main):032:0> u.save
=> false
irb(main):033:0> u.errors
=> #<ActiveModel::Errors:0x00000100cde500 @base=#<User id: nil, email: "[email protected]", password_digest: nil, created_at: nil, updated_at: nil>, @messages={:password_digest=>["can't be blank"]}>
私が間違っていることはわかりません。 password_digest属性が決して割り当てられないように見えます。属性を持たないユーザーオブジェクトを作成し、各属性を個別に割り当てると、同じエラーが発生します。ここで
は私のモデルは、事前に助けを
class User < ActiveRecord::Base
has_secure_password
attr_accessible :email, :password, :password_confirmation
end
おかげです。
アレックスシェノイ