Ruby on rails 在RubyonRails中设置正确的错误消息验证
我无法设置正确的验证错误消息 在模型中,我设置了如下验证代码Ruby on rails 在RubyonRails中设置正确的错误消息验证,ruby-on-rails,ruby,Ruby On Rails,Ruby,我无法设置正确的验证错误消息 在模型中,我设置了如下验证代码 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
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>
在查看页面中,我将代码设置为
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>
电话号码
'输入\文本电话'})%>
但结果是这样的
我不想显示所有的错误信息。如果我希望根据错误信息以这种方式显示错误消息,该怎么办
如果您不想让每个验证器在您未输入任何内容时验证您的输入,则可以使用每个验证器上的选项
validates :tel,
presence: { message: 'is required' },
length: { minimum: 10, maximum: 11, message: 'wrong length tel number. must between 11-11 character', allow_blank: true },
numericality: { message: 'just insert numeric', allow_blank: true }
问题在于
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>
电话号码
'输入\文本电话'})%>
您能否尝试拆分验证,如验证是否存在:tel\u number,:message=>“不能为空”验证:tel\u number:message=>“必须为数字”
并查看是否为空helps@Subash检查我的答案。我不确定上述改变是否能解决这个问题。即使tel\u number
为nil
,它仍将检查数值性:)