使用Rails中的Bootstrap进行simple_form验证

时间:2014-08-20 20:43:57

标签: ruby-on-rails twitter-bootstrap simple-form

我的rails应用程序中有以下simple_form:

<div class="panel panel-default">
 <div class="panel-heading">
  <h3 class="panel-title center">Add New Customer</h3>
 </div>
  <div class="panel-body">
   <%= simple_form_for(@customer, html: {class:'form-horizontal'}, wrapper: :horizontal_form) do |f| %>
    <%= f.input :first_name, input_html: {class:'form-control'} %>
    <%= f.input :last_name, input_html: {class:'form-control'} %>
    <%= f.input :phone_number, as: :tel, input_html: {class:'form-control'} %>
    <%= f.input :email_address, as: :email, input_html: {class:'form-control'} %>
    <%= f.input :address, input_html: {class:'form-control'} %>
    <%= f.input :city, input_html: {class:'form-control'} %>
    <%= f.input :postal_code, input_html: {class:'form-control'} %>
    <%= f.input :customer_type, collection: ["Retail", "Contractor", "Dealer"], input_html: {class:'form-control'}, prompt: "Select Customer Type" %>
    <br />
    <%= f.button :submit, "Create Customer", class: "col-md-3 bump-right" %>
   <% end %>
  </div>
</div>

正如您所看到的,我在表单元素上使用了引导样式。当我提交表单时,我希望发生以下情况:

  1. 验证电子邮件
  2. 验证电话号码
  3. 需要所有字段
  4. 现在,当我提交表格时,上述三种情况都不会发生。浏览simple_form(https://github.com/plataformatec/simple_form)的文档,我无法分辨出我最终结果需要做些什么。我尝试为每个输入添加f.error字段,但似乎没有做任何事情。

    有这个2岁的问题:simple_form & bootstrap validations not working - 但这对我来说很陌生,鉴于2.5岁的版本,我确定有些事情发生了变化。

    如果有人有任何想法,或者可以帮助我揭开文档的神秘面纱,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

在模型(特别是客户模型)中使用在数据保存到数据库之前发生的验证。请参阅文档here

示例:

class Person < ActiveRecord::Base
  validates :name, presence: true
end

Person.create(name: "John Doe").valid? # => true
Person.create(name: nil).valid? # => false