2011-09-18 11 views
8

Oto fragment kodu w pliku edit.html.erb, który nie działa. Celem kodu jest wypełnienie formularza do edycji. Kolekcja jest używana z opcją tak i nie. Jak ustawić kolekcję na aktualną "aktywną" wartość za pomocą: wybranej opcji?Jak ustawić aktualną wartość w kolekcji 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 %> 

Błąd informujący, że aktywny nie jest metodą w f.input: active,: collection.

Odpowiedz

13

Zakładając atrybut active dla kategorii jest logiczna, spróbuj:

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

To nie działa. Kolekcja Aktywna pokazuje tylko Tak, nawet wartość aktywna to fałsz. Dzięki. – user938363

+0

Czy atrybut 'active' jest wartością logiczną? Bardziej sensowne byłoby bycie boolowskim, ale jeśli jest to ciąg znaków, spróbuj użyć ': selected => (@ category.active == 'Tak'? 'Yes': 'No')' – James

+0

Tak, aktywne jest boolean. – user938363

Powiązane problemy