2012-12-01 8 views
21

sto usando simple_form con Bootstrap e mi piacerebbe avere con il mio "Ricordati di me" casella di controllo essere in linea alla sinistra dell'etichetta, come nella documentazione Twitter Bootstrap: http://twitter.github.com/bootstrap/base-css.html#formssimple_form casella di controllo Bootstrap

mio il codice del modulo è simile al seguente:

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

Il risultato è l'etichetta "Ricordami" sopra una casella di controllo.

Che cosa ho incasinato?

risposta

57

C'è un certo numero di opzioni per questo, vedere here per più di loro:

Il più semplice (credo) è quello di utilizzare :label => false e :inline_label => true, sulla vostra casella di controllo, di cambiare la dove nel codice HTML l'etichetta è posto.

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

questo produce qualcosa di simile per me:

enter image description here

+0

Grazie! Esattamente quello di cui avevo bisogno. – hamsterdam

+0

@hamsterdam dovresti contrassegnare questa risposta come accettata! –

+0

Grazie mille! Ho appena trascorso due ore cercando di capirlo :) –

5

@ risposta di alol grandi opere per una forma verticale (etichette sulla parte superiore dei campi), ma se si sta facendo un modulo orizzontale e si desidera che le etichette della casella di controllo vengano visualizzate a destra della casella di controllo, mantenendo comunque il layout del modulo, è possibile effettuare questa operazione:

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

È inoltre possibile passare una specifica etichetta da utilizzare come etichetta di linea invece di true, se hai bisogno di:

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

Penso che questo è un po 'più semplice:

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

Il wrapper viene bundle in config/initializers/simple_form_bootstrap.rb almeno dal simple_form 3.1.0rc2 se installato con:

rails g simple_form:install --bootstrap