2011-06-25 15 views
13

Mam litte problem z radiobuttons w SimpleForm.Rails - Domyślnie wybrane radio w SimpleForm: kolekcja

Gdy używam

= f.association :manufactureType, :collection => ManufactureType.all, :as => :radio 

Rails po prostu generuje kilka radiobuttons, ale żaden z nich nie są zaznaczone. Chcę, aby domyślnie wybrano pierwszy przycisk radiowy. Jak mogę to zrobić?

Dzięki

+4

Ok. Znalazłem odpowiedź na to pytanie. Po prostu dodaj: checked => 1 (value) na końcu linii i działa :) – mswiszcz

Odpowiedz

39

Jeśli przechodzą w typach produkcyjnych do widzenia, można wykonać następujące czynności:

:checked => @manufacture_types[0] 

Albo

:checked => ManufactureType.first 
+0

To zresetuje wybór przycisku, jeśli którekolwiek z pól formularza jest nieprawidłowe i ponownie renderuje. Nie wiem, czy to najlepszy sposób, ale rozwiązałem to przez ustawienie atrybutu w mojej akcji 'new', więc' @manufacturer = Manufacturer.new (producer_type_id: 0) ' – ohhh

5

z komentarzem OP, dodając ten parametr pracował ja:

:checked => 1 
+0

To działało dla mnie, gdzie sprawdzone odpowiedź nie. –

9

Mój przykład był nieco bardziej skomplikowany, żadna z pozostałych odpowiedzi nie sprawdziła się, ponieważ nie było kolekcji ani modelu do odniesienia.

= f.input :attending, as: :radio_buttons, :collection => [ ['Yes', true], ['No', false] ], :checked => ['Yes', true] 
+0

sprawdzone: true Działa również – bkunzi01

2

Oto fragment mojego kodu, który działa:

= f.input :body_format, 
    collection: [['markdown', 'Markdown']], 
    label_method: :last, 
    value_method: :first, 
    as: :radio_buttons, 
    checked: 'markdown', # THIS 
    required: true