Tôi đã chơi xung quanh với has_secure_password và tôi gặp phải sự cố. Thử nghiệm của tôi cho hành động tạo trong UsersController của tôi không phải là
làm việc
. Vì vậy, tôi bắt đầu chơi xung quanh trong giao diện điều khiển và nhận ra rằng mật khẩu đã không được chuyển đổi thành có và được lưu trong trường password_digest.Rails 3.1.1 has_secure_password digest không được để trống
Khi tôi cố gắng tạo người dùng từ bảng điều khiển, điều sau sẽ xảy ra.
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"]}>
Tôi không chắc mình đang làm gì sai. Có vẻ như thuộc tính password_digest không bao giờ được gán. Nếu tôi tạo một đối tượng người dùng không có thuộc tính và gán từng thuộc tính riêng lẻ thì tôi sẽ gặp lỗi tương tự.
Đây là mô hình của tôi
class User < ActiveRecord::Base
has_secure_password
attr_accessible :email, :password, :password_confirmation
end
Thanks for the help trước.
Alex Shenoy