2012-08-30 5 views
5

Sono abbastanza nuovo per le guide e questo è anche il mio primo post, ma sto cercando di creare un simple_form su una pagina di visualizzazione che dovrebbe essere una pagina Impostazioni per alcuni utenti e ho già cercato per 2 giorni per una risposta e non riesco a trovarla da nessuna parte.rails, simple_form, come aggiornare i pulsanti di opzione con l'opzione selezionata dopo aver salvato?

<%= f.input :gender, label: 'What is your gender?', collection: [ ['M', 'Male' ], ['F', 'Female'] ], as: :radio_buttons, label_method: :last, value_method: :first, checked: 'M', item_wrapper_class: 'inline'%> 

Questo è il mio marchio di ingresso e l'unica opzione finora è quello di impostare: checked => 'M', in modo che dopo aver salvato le impostazioni degli utenti verrà selezionato il pulsante di scelta (ma questo non sarà corretto se sto selezionando il sesso "Femminile", perché dopo aver salvato la pagina Impostazioni, il pulsante di opzione "Maschio" verrà selezionato per impostazione predefinita).

Quindi esiste un modo per utilizzare i pulsanti di opzione in formato semplice (o anche un elenco a discesa) in modo che dopo il salvataggio della pagina il genere rimarrà selezionato?

risposta

16

provare a utilizzare il sesso dell'utente attributo invece di "M" fo controllato:

<%= f.input :gender, label: 'What is your gender?', collection: [ ['M', 'Male' ], ['F', 'Female'] ], as: :radio_buttons, label_method: :last, value_method: :first, checked: @user.gender, item_wrapper_class: 'inline'%> 
+0

Grazie mille per la risposta rapida, che dovrebbe risolvere il mio problema – ma3x

+0

Questa risposto alla mia domanda pure. Ma come posso impedire che il modulo passi automaticamente al valore di default selezionato nella vista di modifica? O, per dirla in altro modo, come abbiamo questa opzione selezionata solo in "nuovo" e non in "modifica"? – cpursley

+0

cpuratamente un modo per farlo è (per impostazione predefinita su Maschio in "nuovo" e nulla in "modifica"): ..., selezionato: params [: action] == 'new'? 'M': niente – danebez