ruby-on-rails - 在 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>
我不想显示所有错误消息。如果我想根据错误显示这样的错误消息该怎么办
解决方案
问题是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>