在 Devise 中自定义空白错误

Customize blank errors in Devise

现在我得到这样的错误:

Email can't be blank

我只能改这部分

can't be blank

errors:
    messages:
        blank: cannot be empty

但是之后显示为:

Email cannot be empty

我也可以更改字段名称吗?让它像

E-mail_something_else cannot be empty?

我该怎么做?

我在表单中的字段:

<div class="field">
    <%= t('registration.email') %><br />
    <%= f.email_field :email, autofocus: true, :class => "form-field" %>
</div>

你可以简单地搜索你需要的标签,比如你搜索:already_confirmed(即语言环境文件中的标签),你会发现在文件中:

lib/devise/models/confirmable.rb 

有这一行:

self.errors.add(:email, :already_confirmed)

如果您将 email 更改为您想要的任意键。

编辑: 我正在他们的 github 仓库中搜索,所以我不是用户,这是对的,但也许您需要的消息在文件中:

lib/devise/models/authenticatable.rb 

第 269 行

record.errors.add(key, value.present? ? error : :blank)

如果您想更改 Devise 的验证消息,我会建议您。

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"

示例 => 我删除了上面的设计验证模块,然后在用户模型中替换为您自己的模块。

希望对您有所帮助。

devise_en.yml 文件中试试这个:

en:
    errors:
        format: "%{message}"

默认格式为“%{attribute} %{message}”。