首页 > 解决方案 > 在 ruby​​ on rails 中设置正确的错误消息验证

问题描述

我混淆设置正确的验证错误消息..

在模型中我设置了这样的验证代码

validates :tel, presence: { message: 'is required'}, length: { minimum: 10,  maximum: 11, message: 'wrong length tel number. must between 11-11 character' }, numericality: { message: 'just insert numeric'}

在视图页面中我设置了这样的代码

<dl class="cf">
    <dt class="required">tel number</dt>
    <dd><%= f.text_field(:tel, {:class => 'input_text tel'}) %>
         <% if @user.errors.include?(:tel) %>
            <div class="err"><p><%= @user.errors[:tel] %></p></div>
        <% end %>
    </dd>
</dl>

但是这样的结果 在此处输入图像描述

我不想显示所有错误消息。如果我想根据错误显示这样的错误消息该怎么办

在此处输入图像描述

标签: ruby-on-railsruby

解决方案


问题是Rails运行定义的所有验证。为了达到预期的结果,您可以显示第一条消息:

<dl class="cf">
    <dt class="required">tel number</dt>
    <dd><%= f.text_field(:tel, {:class => 'input_text tel'}) %>
         <% if @user.errors.include?(:tel) %>
            <div class="err"><p><%= @ultratech.errors[:tel].first %></p></div>
        <% end %>
    </dd>
</dl>

或全部显示,例如:

<dl class="cf">
    <dt class="required">tel number</dt>
    <dd><%= f.text_field(:tel, {:class => 'input_text tel'}) %>
         <% if @user.errors.include?(:tel) %>
            <% @ultratech.errors[:tel].each do |error| %>
              <div class="err"><p><%= error %></p></div>
            <% end %>
        <% end %>
    </dd>
</dl>

推荐阅读