2010-11-03 9 views
14

Ho un modulo Rails che viene utilizzato per creare e modificare un modello con una relazione has_many. Conosco molto bene le forme tipiche con i modelli nidificati, ma il mio problema attuale richiede l'accesso al rendering di alcuni elementi del modulo utilizzando i tipici helper di FormBuilder e altri elementi HTML che utilizzano i dati del modello stesso. Ad esempio, il mio modulo di livello superiore ha qualcosa come:Accesso agli attributi del modello annidato all'interno di fields_for senza utilizzare FormBuilder

<% customer_form.fields_for :customer_images do |images_form| %> 
    <%= render :partial => 'customer_image_show', :locals => { :f => images_form } %> 
<% end %> 

Poi, in forma parziale, ho bisogno di fare qualcosa di simile:

<dd><%= f.text_field :image_description %></dd> 

... ma anche l'accesso attributi dal modello customer_images (ad esempio, l'ID del record customer_image).

Mi sembra che questo dovrebbe essere abbastanza semplice e mi manca solo qualcosa di base. Qualsiasi aiuto è apprezzato. Questa è un'applicazione di Rails 2.3.8.

risposta

45

È possibile chiamare

f.object 

per arrivare all'oggetto che la forma è associato.

+0

Ha funzionato, grazie! –

+1

Sono sorpreso che questo non sia spiegato più esplicitamente nella documentazione di Ruby on Rails poiché questo è qualcosa di molto utile quando si costruiscono e si gestiscono i moduli. Grazie monocolo! –

0

Non sono sicuro se questo è quello che ti serve, ma potresti non includere i dati del modello come locale? come:

<%= render :partial => 'customer_image_show', :locals => { :f => images_form, :customer_image => @customer_image } %> 
Problemi correlati