我想创建一个用户(admin),我想使用控制台(没有用户注册模型)。我使用RailsCasts的解决方案(http://railscasts.com/episodes/270-authentication-in-rails-3-1)。 但是我有一个问题:当我在控制台中执行User.create(...,:password =>“pass”)时,我的密码存储在数据库中而没有编码(如“pass”)。我无法使用我的数据登录。
如何从控制台创建用户? :)
答案 0 :(得分:21)
直接来自Rails API
# Schema: User(name:string, password_digest:string)
class User < ActiveRecord::Base
has_secure_password
end
user = User.new(:name => "david", :password => "", :password_confirmation => "nomatch")
user.save # => false, password required
user.password = "mUc3m00RsqyRe"
user.save # => false, confirmation doesn't match
user.password_confirmation = "mUc3m00RsqyRe"
user.save # => true
user.authenticate("notright") # => false
user.authenticate("mUc3m00RsqyRe") # => user
您需要在哈希中包含:password_confirmation => "pass
!
是的,所以看看has_secure_password
你要执行BCrypt::Password.create(unencrypted_password)
来获取它。您需要bcrypt-ruby
gem来执行上述操作。