2014-06-09 52 views
0

说我有这个基本的表单助手代码:的Rails表单助手自举3

<%= form_for(@user) do |f| %> 

     <%= f.label :name, 'Username' %> 
     <%= f.text_field :name %> 

     <%= f.label :email, 'Email (Optional)' %> 
     <%= f.text_field :email %> 

     <%= f.label :password %> 
     <%= f.password_field :password %> 

     <%= f.label :password_confirmation, "Confirmation" %> 
     <%= f.password_field :password_confirmation %> 

     <%= f.submit "Create my account", class: "btn btn-large btn-primary" %> 
    <% end %> 

我知道我可以通过添加:html => { :class => "class_name"}到的form_for参数更改类的整个事情,但怎么样,如果我想将每一对控件放在一个form-group类中,然后使标签具有类control-label并且输入具有类form-control?因为这是bootstrap会同意为我设计我的表单的唯一方式。我尝试在标签和文本字段周围添加html代码,但这是一个怪物。我想知道是否有更干净的方法来做到这一点。

inb4表单生成的宝石,我在这里学习,我继续读了那些对轨道4和引导3仍然缺乏

回答

0

显然,你可以做:class => "classname"作为表单控件属性的位红宝石命令也是如此。比没完没了的嵌套div更难看。

0

使用Rails语法,在Bootstrap中设置格式的正确方法如下。乍一看似乎没有必要,但div.form-group有助于在每对之间添加一点余量,并且还会向您提供父级以将validation classes添加到。

.control-label通常是不必要的,但是如果您要添加这些验证类,您还需要将它添加到标签中,如果您还想让它们更改颜色。 :class => 'control-label'f.label是你如何添加这些。

<%= form_for(@user) do |f| %> 
    <div class="form-group"> 
    <%= f.label :name, 'Username' %> 
    <%= f.text_field :name, :class => 'form-control' %> 
    </div> 
    <div class="form-group"> 
    <%= f.label :email, 'Email (Optional)' %> 
    <%= f.text_field :email, :class => 'form-control' %> 
    </div> 
    <div class="form-group"> 
    <%= f.label :password %> 
    <%= f.password_field :password, :class => 'form-control' %> 
    </div> 
    <div class="form-group"> 
    <%= f.label :password_confirmation, "Confirmation" %> 
    <%= f.password_field :password_confirmation, :class => 'form-control' %> 
    </div> 
    <%= f.submit "Create my account", class: "btn btn-large btn-primary" %> 
<% end %>