在rails 5中,如果我将字段留空/空白,如何只有一条验证消息?

时间:2017-09-07 19:43:44

标签: ruby-on-rails validation model ruby-on-rails-5 is-empty

我使用Rails 5.我的模型中有这个...

  belongs_to :crypto_currency

  validates :crypto_currency, presence: true

问题是当我从表单中保存模型时,如果我没有为" Crypto_currency"设置值,则会出现两个错误。现场......

Crypto currency must exist
Crypto currency Please select a value for crypto currency.

这是我的config / locales / en.yml文件。我仍然需要弄清楚如何删除"加密货币"来自"加密货币的单词请为加密货币选择一个值。"错误消息,但您可以清楚地看到我只在文件中定义了一条错误消息

en:
  activerecord:
    errors:
      models:
        user_notification:
          attributes:
            crypto_currency:
              blank: "Please select a value for crypto currency."

如果未输入模型字段,我该如何只有一条错误消息?

编辑:在回复评论时,这里是我如何显示其他信息

  <ul>
  <% @user_notification.errors.full_messages.each do |message| %>
    <li><%= message %></li>
  <% end %>
  </ul>

2 个答案:

答案 0 :(得分:2)

Rails 5默认需要\关联

belongs_to添加验证,因此您不需要自己的。

您可以跳过belongs_to :crypto_currency默认验证,如下所示:

belongs_to

或删除您自己的并自定义默认错误消息

答案 1 :(得分:0)

尝试更改您的模型:

belongs_to :crypto_currency, optional: true
validates :crypto_currency, presence: true

并且

en:  
  activerecord:
    attributes:
      user_notification:
        crypto_currency: ""
    errors:
      models:
        user_notification:
          attributes:
            crypto_currency:
              blank: "Please select a value for crypto currency."