simple_form с флажком Bootstrap

Я использую simple_form с Bootstrap, и я хотел бы, чтобы мой флажок «Запомнить меня» был встроен слева от метки, как в документации 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 %>

В результате появится надпись «Запомнить меня» над флажком.

Что я напутал?


person hamsterdam    schedule 01.12.2012    source источник


Ответы (3)


Для этого есть несколько вариантов. Дополнительные сведения см. здесь:

Самый простой (я думаю) - использовать :label => false и :inline_label => true на вашем флажке, чтобы изменить место размещения метки в HTML.

<%= f.input :remember_me, :as => :boolean, :label => false, :inline_label => true if devise_mapping.rememberable? %>

У меня получается что-то вроде этого:

введите описание изображения здесь

person alol    schedule 01.12.2012
comment
Спасибо! Именно то, что мне нужно. - person hamsterdam; 02.12.2012
comment
Огромное спасибо! Я просто потратил два часа, пытаясь понять это :) - person Kyle Carlson; 15.05.2013

Ответ @alol отлично подходит для вертикальной формы (метки поверх полей), но если вы делаете горизонтальную форму и хотите, чтобы метки флажков отображались справа от флажка, но при этом сохраняйте макет форму, вы можете сделать это:

f.input :remember_me, :as => :boolean, :label => "&nbsp;", :inline_label => true if devise_mapping.rememberable?

Вы также можете передать конкретную метку для использования в качестве встроенной метки вместо true, если вам нужно:

f.input :remember_me, :as => :boolean, :label => "&nbsp;", :inline_label => "My Label" if devise_mapping.rememberable?
person Josh M.    schedule 23.09.2013

Я думаю, что это немного проще:

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
person Pablo Olmos de Aguilera C.    schedule 15.08.2014