Ruby on rails 操作前的rails验证

Ruby on rails 操作前的rails验证,ruby-on-rails,validation,rails-activerecord,Ruby On Rails,Validation,Rails Activerecord,以下是我的应用程序中发生的情况: 客户输入电话号码 在客户模型中搜索电话号码以查看其是否存在 如果确实存在,请转到“客户展示”页面 如果不存在,请转到“客户新建”页面以创建新客户 根据我的理解,模型验证是针对输入/编辑/删除到数据库中的数据进行的 但是,在数据库中搜索任何内容之前,我们如何检查(使用验证)?如果不正确(例如:电话号码使用字母而不是数字),则会显示错误 我正在实现html表单输入选项,以防止有人在电话号码输入框中输入字母,如下所示: <%= form_tag(new_c

以下是我的应用程序中发生的情况:

  • 客户输入电话号码
  • 在客户模型中搜索电话号码以查看其是否存在
  • 如果确实存在,请转到“客户展示”页面
  • 如果不存在,请转到“客户新建”页面以创建新客户
根据我的理解,模型验证是针对输入/编辑/删除到数据库中的数据进行的

但是,在数据库中搜索任何内容之前,我们如何检查(使用验证)?如果不正确(例如:电话号码使用字母而不是数字),则会显示错误

我正在实现html表单输入选项,以防止有人在电话号码输入框中输入字母,如下所示:

 <%= form_tag(new_customer_path, method: :get) do %>
   <%= telephone_field_tag :phone, nil, placeholder: "Phone Number", required: true, pattern: "[0-9]{10}", title: "Number must be 10 digits", maxlength: "10", class: "input-lg" %>
   <%= submit_tag "Enter", class: "btn btn-primary btn-lg" %>
 <% end %>
部分错误消息

<% flash.each do |key, value| %>
  <div class="alert alert-<%= key %>">
    <a href="#" data-dismiss="alert" class="close">×</a>
      <ul>
        <li>
          <p><%= value %></p>
        </li>
      </ul>
  </div>
<% end %>


rails验证可能已经足够好了,但是如果您担心它,可以在客户端添加javascript验证。如果您想在客户端执行表单验证,或者您可以编写自己的插件,那么可以使用几个插件。这可能会有帮助:

只需添加带有JavaScript和HTML的前端验证。您的Rails验证看起来不错

Html:
必需
属性

Jquery:查看此链接-

def new
   if @customer = Customer.find_by(phone: params[:phone])
    flash[:success] = "Welcome back"         
    redirect_to @customer
  else
    @customer = Customer.new(phone: params[:phone])
    flash.now[:warning] = "Customer not found, please sign up!"
  end
end
<% flash.each do |key, value| %>
  <div class="alert alert-<%= key %>">
    <a href="#" data-dismiss="alert" class="close">×</a>
      <ul>
        <li>
          <p><%= value %></p>
        </li>
      </ul>
  </div>
<% end %>