2012-07-13 3 views
6

Sto utilizzando simple_form, nested_form e Twitter Bootstrap e sto cercando di mettere il "Remove Link" da nested_form sulla stessa riga dell'oggetto.Aggiunta di controlli in linea con Simple_form, nested_form e Twitter Bootstrap in Rails

In questo momento sembra che questo:

http://grab.by/eKDS

e voglio farlo sembrare come questo:

http://grab.by/eKEc

Ecco ciò che il mio codice è simile:

<%= cform.simple_fields_for :licensings do |lf| %> 
    <%= lf.input :state, :collection => us_states, :wrapper => false %> 
    <%= lf.link_to_remove "Remove this Licensing", :class => 'btn btn-mini btn-danger' %> 
<% end %> 

Ho provato a mettere il secondo link_to_remove all'interno di un blocco per il primo lf.input ma poi il dropdown effettivo non appare. Ho esaminato il codice di simple_form ma non sono stato in grado di rintracciare se ci fosse un modo per ottenere questo risultato.

+0

Come su ogni avvolgendo in un div e usare i CSS per gestire il posizionamento. – diasks2

risposta

12

Grazie per le risposte, ma non ho potuto ottenere sia per lavorare. Ho trovato la risposta sulla mailing list di Google Gruppi:

https://groups.google.com/forum/?fromgroups#!topic/plataformatec-simpleform/hL9ek5svyAU

<%= cform.simple_fields_for :licensings do |lf| %> 
    <%= lf.input :state do %> 
     <%= lf.input_field :state, :collection => us_states %> 
     <%= lf.link_to_remove "Remove this Licensing", :class => 'btn btn-mini btn-danger' %> 
    <% end %> 
    <% end %> 
1

Hai provato ad aggiungere la classe "inline" al modulo annidato?

<%= form_for @test, :html => { :class => 'form-inline' } do |f| %> 
    <%= f.text_field :some_field, :class => 'text_field' %> 
    <%= f.submit "Save", :class => 'btn btn-primary' %> 
<% end %> 
+0

Sì, ma si tratta di inlining di un particolare gruppo di controlli, non dell'intero modulo. Per il modulo ho già forma-orizzontale. – David

1

Come si può vedere nel documentation, è possibile creare il proprio wrapper personalizzato. È necessario aggiungere qualcosa di simile in voi di simple_form initializer:

config.wrappers :inline do |b| 
    b.use :placeholder 
    b.use :label_input 
end 

e usarlo in questo modo:

<%= cform.simple_fields_for :licensings do |lf| %> 
    <%= lf.input :state, :collection => us_states, :wrapper => inline %> 
    <%= lf.link_to_remove "Remove this Licensing", :class => 'btn btn-mini btn-danger' %> 
<% end %>