我正在使用带有Bootstrap的simple_form,我希望我的“记住我”复选框内嵌在标签的左侧,如Twitter Bootstrap文档中所示:http://twitter.github.com/bootstrap/base-css.html#forms
我的表单代码如下:
<%= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => { :class => 'well'}) do |f| %>
<%= f.input :email %>
<%= f.input :password %>
<%= f.input :remember_me, :as => :boolean if devise_mapping.rememberable? %>
<%= f.button :submit, "Sign In" %>
<% end %>
结果是复选框顶部的“记住我”标签。
我搞砸了什么?
答案 0 :(得分:58)
有很多选项,请参阅here了解更多内容:
最简单的(我认为)是在复选框上使用:label => false
和:inline_label => true
来更改标签所在HTML的位置。
<%= f.input :remember_me, :as => :boolean, :label => false, :inline_label => true if devise_mapping.rememberable? %>
这为我产生了这样的东西:
答案 1 :(得分:5)
@ alol的答案适用于垂直表单(字段顶部的标签),但如果您正在执行水平表单,并且您希望复选框标签显示在复选框的右侧,但仍保留表单的布局,你可以这样做:
f.input :remember_me, :as => :boolean, :label => " ", :inline_label => true if devise_mapping.rememberable?
如果您需要,还可以传递特定标签作为内联标签而不是true
:
f.input :remember_me, :as => :boolean, :label => " ", :inline_label => "My Label" if devise_mapping.rememberable?
答案 2 :(得分:2)
我认为这个有点简单:
f.input :remember_me, wrapper: :vertical_boolean, as: :boolean if devise_mapping.rememberable?
当安装时,包装器至少从config/initializers/simple_form_bootstrap.rb
捆绑在simple_form 3.1.0rc2
中:
rails g simple_form:install --bootstrap