formulario simple con casilla de verificación Bootstrap


Estoy usando simple_form con Bootstrap y me gustaría tener mi casilla de verificación" Recordarme" en línea a la izquierda de la etiqueta, como en los documentos de Bootstrap de Twitter: http://twitter.github.com/bootstrap/base-css.html#forms

Mi código de formulario se ve así:

<%= 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 %>

El resultado es la etiqueta "Recuérdame" en la parte superior de una casilla de verificación.

¿Qué he estropeado?

Author: Koen., 2012-12-01

3 answers

Hay una serie de opciones para esto, ver aquí para más de ellas:

Lo más sencillo (creo) es usar :label => false y :inline_label => true, en su casilla de verificación, para cambiar el lugar en el HTML donde se coloca la etiqueta.

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

Esto produce algo como esto para mí:

introduzca la descripción de la imagen aquí

 58
Author: alol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-01 09:17:59

La respuesta de@alol funciona muy bien para un formulario vertical (etiquetas en la parte superior de los campos), pero si está haciendo un formulario horizontal y desea que las etiquetas de la casilla de verificación se muestren a la derecha de la casilla de verificación, pero aún así se mantengan con el diseño del formulario, puede hacer esto:

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

También puede pasar una etiqueta específica para usarla como etiqueta en línea en lugar de true, si necesita:

f.input :remember_me, :as => :boolean, :label => "&nbsp;", :inline_label => "My Label" if devise_mapping.rememberable?
 5
Author: Josh M.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-23 18:30:54

Creo que este es un poco más simple:

f.input :remember_me, wrapper: :vertical_boolean, as: :boolean  if devise_mapping.rememberable?

El wrapper viene incluido en config/initializers/simple_form_bootstrap.rb al menos desde simple_form 3.1.0rc2 cuando se instala con:

rails g simple_form:install --bootstrap
 2
Author: Pablo Olmos de Aguilera C.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-15 21:52:03