gpt4 book ai didi

ruby-on-rails - RoR 3.1 中的 password_digest、has_secret_password 和表单验证

转载 作者:行者123 更新时间:2023-12-03 16:01:38 24 4
gpt4 key购买 nike

如果您还没有看过,请查看最新的 railscast authentication in rails 3.1 。他在生成模型时使用 password_digest:string 并将 has_secret_password 添加到 User 模型中。他还添加了一些accessible_attributes、:password 和:password_confirmation。

通过使用 validates_confirmation_of :password 我们可以确保在创建实例之前确认密码。如果我将表单中的密码字段留空,则会收到以下错误消息:

ruby-1.9.2-p180 :024 > u = User.new
=> #<User id: nil, name: nil, email: nil, password_digest: nil, created_at: nil, updated_at: nil>
ruby-1.9.2-p180 :027 > u.save
(0.4ms) SELECT 1 FROM "users" WHERE "users"."email" = '' LIMIT 1
=> false
ruby-1.9.2-p180 :028 > u.errors.full_messages
=> ["Password digest can't be blank"]

当然,我们不想在与用户交流时将密码字段称为“密码摘要”。如何更改此错误消息?

奖金问题
当使用 validates_confirmation_of 并使用不匹配的密码时,我收到两条错误消息告诉我,只有 :password 标签和输入标签被 fields_with_errors div 包围。如果密码不匹配,我还想突出显示 password_confirmation 输入,如果可能,将其从密码部分完全删除。

我应该编写自己的方法来检查密码确认吗?如果是这样,您能否提供一些小指南?

最佳答案

解决此问题的官方方法是将以下内容添加到您的语言环境文件中:

en:
activerecord:
attributes:
user:
password_digest: 'Password'

英语语言环境文件位于 config/locales/en.yml 。您可能必须重新启动服务器才能将更改加载到您的环境中。

关于ruby-on-rails - RoR 3.1 中的 password_digest、has_secret_password 和表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6336332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com