34

Nel seguente scenario, è necessario verificare il valore della proprietà dell'oggetto nel ciclo fields_for.Ottenere un valore del campo oggetto all'interno di fields_for loop

<%= f.semantic_fields_for :review_details do |rd| %> 
    <%= rd.input :review_criteria_id, :as=>:hidden %> 
<% end %> 

Come nel ciclo, :review_criteria_id è reso come campo nascosto, ma ho un piano d'azione, dove devo stampare qualche informazione in più se si tratta di un criterio specifico. Come posso ottenere il valore di review_criteria_id nel ciclo. ho usato:

rd.review_criteria_id 

Ma poiché rd è l'oggetto Formtastic, così non ho potuto ottenere il valore di :review_crieteria_id.

risposta

64

Formtastic aggiunge funzionalità aggiuntive per il codice di Rails, ma non toglie funzionalità esistenti in modo che il seguente dovrebbe funzionare per voi:

rd.object.review_criteria_id 

'oggetto' può essere utilizzato in Rails semplici formare aiutanti per accedere al oggetto vincolato sottostante e Formtastic onora questa convenzione.

+0

Vorrei aggiungere che è possibile trovare questo eseguendo il debug della vista. L'aggiunta di un'istruzione debug (in questo caso byebug) '<% byebug %>' all'interno del blocco 'fields_for' dà a una persona l'accesso all'oggetto costruttore stesso. Puoi quindi chiamare 'methods' su detta classe e iniziare a investigare. – Tass

9

ho preso, posso usare

rd.object.review_criteria_id 

object è l'oggetto predefinito wrapper per il ciclo fields_for.