自定义验证消息

Man*_*eep 1 validation ruby-on-rails ruby-on-rails-4

我想知道如何完全自定义验证消息,这就是我的代码的样子

user_profile.rb: -

validates: first_name, :presence => {:message => "First name can't be blank"}
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误消息用户配置文件名字第一个名称不能为空,我想要的是有一个错误消息名字不能为空.我四处寻找解决方案,我想我必须在en.yml文件中做一些更改,但我不知道该怎么做.有帮助吗?

ush*_*sha 6

你有三个选择:

validate do |user|
  user.errors.add_to_base("First name can't be blank") if user.first_name.blank?
end
Run Code Online (Sandbox Code Playgroud)

要么

执行user_profile.errors.full_messages会给你 - > ["First Name can't be blank"]

validates: first_name, :presence => {:message => "can't be blank"}
Run Code Online (Sandbox Code Playgroud)

要么

# config/locales/en.yml
en:
  activerecord:
    attributes:
      user_profile:
        first_name: "First name"
    errors:
      models:
        user_profile:
          attributes:
            first_name:
              blank: "can't be blank"
Run Code Online (Sandbox Code Playgroud)

有关如何使用区域设置的更多信息,请查看此内容