有没有办法在 Rails 中为确认字段自定义消息?例如在设计中我必须输入密码和密码确认,错误消息是:
密码确认与密码不匹配
我可以更改活动记录区域设置消息(“不匹配”),但它会在该区域设置消息的开头和结尾输出密码确认和密码,所以我得到如下信息:
“密码确认必须与密码一致”
有没有办法将其更改为不同的字符串?
密码确认和密码必须匹配。
编辑
另一件事是拥有完全自定义的消息,例如:
“设置密码”和“确认密码”必须匹配。
有没有办法在 Rails 中为确认字段自定义消息?例如在设计中我必须输入密码和密码确认,错误消息是:
密码确认与密码不匹配
我可以更改活动记录区域设置消息(“不匹配”),但它会在该区域设置消息的开头和结尾输出密码确认和密码,所以我得到如下信息:
“密码确认必须与密码一致”
有没有办法将其更改为不同的字符串?
密码确认和密码必须匹配。
编辑
另一件事是拥有完全自定义的消息,例如:
“设置密码”和“确认密码”必须匹配。
这些错误消息属于activerecord。
只需创建一个具有该结构的新语言文件并替换您需要的内容。
activerecord:
errors:
messages:
confirmation: "and Password must match."
您可以为模型或模型属性定义自己的错误。 :model、:attribute 和 :value 值始终可用于插值。
For example,
models:
user:
blank: "This is a custom blank message for %{model}: %{attribute}"
attributes:
login:
blank: "This is a custom blank message for User login"
请根据您的要求阅读此链接的更多信息 https://github.com/rails/rails/blob/master/activerecord/lib/active_record/locale/en.yml
ActiveRecord en.yml 是我建议您要更改设计的验证消息的答案
这里 en.yml 应该是什么样子
en:
activerecord:
errors:
models:
user:
attributes:
email:
blank: "Please Specify an Email id"
taken: "Please use a different Email id"
invalid: "Please Specify a valid Email id"
password:
blank: "Please Specify a Password"
confirmation: "Password does not match"
password_confirmation:
blank: "Please Specify a Password Confirmation"
first_name:
blank: "Please Specify First Name"
last_name:
blank: "Please Specify Last Name"
pdf:
attributes:
name:
blank: "Please Specify name to PDF"
taken: "Please use different name for PDF"
attachment:
blank: "Please Upload a PDF Attachment"
data_element:
attributes:
name:
blank: "Please give Element a desired name"
taken: "Already Created Element with given name"
color:
blank: "Please assign a color to Element"
template:
attributes:
name:
blank: "Please Specify a Name"
taken: "Please use a different name"
我建议您以这种方式定义,而不是自定义设计验证模块
因为我您遵循上述方法,所以您可能会跳过一两个地方的验证
例如我删除上面的设计验证模块,然后在用户模型中替换你自己的
那么所有验证都可以使用,但您会错过更改密码中的验证
即使从未提供或从未提供密码,也会导致您登录