2012-09-03 5 views
16

Sto facendo la mia vista personalizzata che ho bisogno di rendere il processo di creazione di modelli associati meno doloroso per i miei utenti. Voglio mostrare tutti i pezzi associati ai modelli in linea, con i controlli per modificarli. È piuttosto semplice eseguire il rollover per i campi base, ma preferisco usare un partial form_filtering_select per le associazioni del modello inline, ma non riesco a trovare alcuna documentazione per farlo.Utilizzare i moduli rails_admin nelle visualizzazioni personalizzate?

risposta

0

C'è una bella gemma che fa più o meno quello che vuoi. Si chiama Nested Form Fields. Permette di modificare i record (insieme con le loro has_many associazioni) su una singola pagina. La cosa interessante è che utilizza anche jQuery per aggiungere/rimuovere dinamicamente i campi del modulo senza ricaricare la pagina. Scopri le gemme docs per l'uso corretto. Spero possa aiutare!

+0

Ti fornirò la taglia se aggiungi un esempio utilizzando Campi modulo nidificati. – max

1

È possibile utilizzare Nested Form

consideri una classe User che restituisce un array di istanze del progetto dal metodo di lettore di progetti e risponde alla projects_attributes = metodo di scrittura:

class User 
    def projects 
    [@project1, @project2] 
    end 

    def projects_attributes=(attributes) 
    # Process the attributes hash 
    end 
end 

Si noti che il projects_attributes = scrittore è infatti necessario un metodo per fields_for per identificare correttamente: progetti come una raccolta e gli indici corretti da impostare nel markup del modulo.

Quando i progetti sono già un'associazione per l'utente è possibile utilizzare accepts_nested_attributes_for per definire il metodo di scrittura per voi:

class User < ActiveRecord::Base 
    has_many :projects 
    accepts_nested_attributes_for :projects 
end 

Questo modello può ora essere utilizzato con un fields_for nidificato. Il blocco dato alla vocazione fields_for nidificato verrà ripetuta per ogni istanza della collezione:

<%= nested_form_for @user do |user_form| %> 
    ... 
    <%= user_form.fields_for :projects do |project_fields| %> 
    <% if project_fields.object.active? %> 
     Name: <%= project_fields.text_field :name %> 
    <% end %> 
    <% end %> 
    ... 
<% end %> 

Qui va il Reference per i dettagli.

+0

Hai un esempio di ciò che scriverei per elaborare l'hash degli attributi in questo esempio? – pappy