首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ruby on rails中设置正确的错误消息验证

在ruby on rails中设置正确的错误消息验证
EN

Stack Overflow用户
提问于 2018-07-18 15:13:17
回答 2查看 46关注 0票数 0

我对设置正确的验证错误消息感到困惑。

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

代码语言:javascript
运行
复制
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'}

在视图页面中,我像这样设置代码

代码语言:javascript
运行
复制
<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>

但是像这样的结果

我不想显示所有的错误消息。如果我希望根据错误显示如下所示的错误消息,该怎么办

EN

回答 2

Stack Overflow用户

发布于 2018-07-18 15:16:35

如果不希望验证器在您没有输入任何内容时验证您的输入,则可以在每个验证器上使用选项allow_blank: true

代码语言:javascript
运行
复制
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 }
票数 0
EN

Stack Overflow用户

发布于 2018-07-18 15:19:13

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

代码语言:javascript
运行
复制
<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>

或者将它们全部显示,如下所示:

代码语言:javascript
运行
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51395727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档