Ruby on rails 用简单形式验证

Ruby on rails 用简单形式验证,ruby-on-rails,ruby-on-rails-3,simple-form,Ruby On Rails,Ruby On Rails 3,Simple Form,我试图使用简单的表单gem来创建表单。我也在使用twitter引导来设计样式,所以在某些情况下,简单表单过于僵化,无法完成我想做的事情(并非总是如此) 我正在提交一个验证失败的表单,确实如此。但是,当它再次呈现页面时,不会在输入附近显示错误消息,页面只呈现一半 控制器代码:(注意,我基本上使用的是显示/编辑操作) 查看/表单代码: <%= simple_form_for @contact, :html => {:novalidate => true} do |f| %>

我试图使用简单的表单gem来创建表单。我也在使用twitter引导来设计样式,所以在某些情况下,简单表单过于僵化,无法完成我想做的事情(并非总是如此)

我正在提交一个验证失败的表单,确实如此。但是,当它再次呈现页面时,不会在输入附近显示错误消息,页面只呈现一半

控制器代码:(注意,我基本上使用的是显示/编辑操作)

查看/表单代码

<%= simple_form_for @contact, :html => {:novalidate => true} do |f| %>
<%= f.error_notification %>
<fieldset>

  <legend>Contract</legend>
  <div class="controls controls-row">
    <div class="span3">
      <div class="controls controls-row">
        <%= f.label :tax_id_number, 'Social Security No.' %>
        <%= f.text_field :tax_id_number, class: 'span12', placeholder: 'Social Security No.' %>
      </div>
    </div>
  </div>
  </div>
</fieldset>

<div class="form-actions">
  <%= f.button :submit, :class => 'btn-primary' %>
  <%= link_to "Cancel", customer_relationship_contacts_path, :class => 'btn' %>
</div>
    validates :tax_id_number, format: { with: /\A[0-9]+\z/, message: "Please enter only numbers without dashes." }, allow_blank: true

这里的问题是,您在视图中使用了
f.label
f.text\u field
——简单表单是为了简单而构建的,因此您需要的是
f.input
——因此在这种情况下:

<%= f.input :tax_id_number, label: 'Social Security No.', placeholder: 'Social Security No.' %>

下面是发生的情况-
f.input
将创建一个带有输入类的环绕div。在该div中是标签和输入。如果有任何错误,simple form将向周围的div中添加带有错误的class
字段,并在带有class
错误的输入后添加一个包含消息的span。如果不使用
f.input


剩下的就是用css为它们设计样式。

你试过gem吗?还有一个分支,它似乎不支持内联错误消息,这正是我在这里要说的。
<%= f.input :tax_id_number, label: 'Social Security No.', placeholder: 'Social Security No.' %>