Check_box

Witam,

Mój pierwszy post , wiec proszę o wyrozumiałość:)

Mam model article oraz category gdzie relacja miedzy nimi jest jeden(category) do wielu(article). W widoku dla article dopisałem pole Category
W sumie kategorii mam 5

<%= f.label "Categories" %>
<% for category in Category.all %> <%= check_box_tag 'article[category_id][]', category.id, @article.category_id, :id => dom_id(category) %> <%= label_tag dom_id(category), category.name, :class => "check_box_label" %> <% end %>

Jeżeli wybieram sobie kategorie ostatnią (wiem że jej Id to 5) to nie wiem dlaczego zapisuje mi do bazy jako kategoria pierwsza(pod linkiem zrzut ekranu) http://mojeftp.vot.pl/check_box.png

Co może być nie tak?

pozdro,

zobacz, że jako category_id nie otrzymujesz “5” tylko [“5”], czyli tablicę, co wynika z tego:

 article[category_id][]

(znaki []) na końcu

Problem w ogólności polega na tym, że używasz check boksów w miejscu, gdzie powinieneś używać radio buttonów lub selecta (check boksy służą do wybrania kilku opcji)

Jeśli się uczysz i bawisz to ok, inaczej zaoszczędź sobie problemów i skorzystaj z gotowych gemów do formularzy jak formtastic czy simple form

http://railscasts.com/episodes?utf8=✓&search=formtastic

Dzięki Panowie za odpowiedź.
Gotar jestem na etapie nauki i wolałbym to zrobić bez używania gemów.

Domyślam się,że check box jest do stosowania przy wyborze wielu opcji ,ale myślałem że da się to jakoś oswoić:)problem w tym ,że jak próbowałem zrobić to za pomocą radio to wyskakuje mi “You have a nil object when you didn’t expect it!”

jednak Gotar radził dobrze:)simple_form jest naprawdę simple!