我的应用程序允许人们使用密码或 Facebook 进行注册。
即使我从用户模型中删除密码验证,我也会:password_digest => ["can't be blank"]
进入用户模型。
我用has_secure_password
.
我怎样才能使password_digest
不需要?
我的应用程序允许人们使用密码或 Facebook 进行注册。
即使我从用户模型中删除密码验证,我也会:password_digest => ["can't be blank"]
进入用户模型。
我用has_secure_password
.
我怎样才能使password_digest
不需要?
你不能。has_secure_password
自动将两个验证器添加到您的模型中:
validates_confirmation_of :password
validates_presence_of :password_digest
password_digest
相反,为没有密码的用户提供一个虚拟值:
user.password = user.password_confirmation = ""
user.password_digest = "facebook-authorized account"
这是安全的,因为不可能对密码进行哈希处理以匹配该摘要。
最近的提交添加了一个选项哈希has_secure_password
,允许跳过对 password_digest 字段的验证。你像这样使用它:
has_secure_password :validations => false
不幸的是,这在 3.2.13 版本的 rails 中不存在。参考https://stackoverflow.com/a/16706045/1356792