2011-09-18 14 views
8

Ecco una parte di codice in edit.html.erb che non funziona. Lo scopo del codice è compilare un modulo per la modifica. La raccolta viene utilizzata con l'opzione di sì e no. Come posso impostare la collezione sul valore "attivo" corrente con: opzione selezionata?Come impostare il valore corrente nella raccolta in simple_form

<%= simple_form_for @category do |f| %> 

    <%= f.input :name, :disabled => true, :required => false %> 
    <%= f.input :description %> 
    <%= f.input :active, :collection => ['Yes', 'No'], :selected => f.active %> 
    <%= f.button :submit %> 
<% end %> 

L'errore che dice che l'attivo non è un metodo in f.input: active,: collection.

risposta

13

Supponendo che l'attributo active per le categorie è un valore booleano, provare:

:selected => (@category.active? ? 'Yes' : 'No') 
+0

Non ha funzionato. La raccolta attiva mostra solo Sì, anche l'attivo è falso. Grazie. – user938363

+0

L'attributo 'active' è booleano? Avrebbe più senso che fosse un booleano, ma se si tratta di una stringa, allora prova ': selected => (@ category.active == 'Yes'? 'Yes': 'No')' – James

+0

Sì, active is a booleano. – user938363

Problemi correlati