[code]class Answer < ActiveRecord::Base
belongs_to :question
end
class Question < ActiveRecord::Base
has_many :answers
end[/code]
Oto pytanie: Jak zrobić formularz by za jego pomocą móc stowrzyć/edytować treść pytania i powiązanych z nim odpowiedzi? Chodzi mi by w request mieć coś takiego:
"question" => { "body" => "To jest treść pytania", "answers" => [ { "body" => "To jest treść pierwszej odpowiedzi" }, { "body" => "To jest treść drugiej odpowiedzi" }] }
W tej chwili próbuję coś w stylu
<% form_for :question do |f| %>
<%= f.text_area :body %>
<%= f.text_area :answers[][:body] %>
<% end %>
Co oczywiście owocuje błędem.
Mam nadzieję, że jasno przedstawiłem swój problem
Krótko - dla każdej odpowiedzi musisz mieć osobne text_area. Jeśli liczba odpowiedzi jest zmienna, to najlepiej byłoby generować je po stronie użytkownika.
W kontrolerze musisz zaś stworzyć osobno każdą odpowiedź (Answer.new(params[:answers][0], Answer.new(params[:answers][1], etc.) i dodać
je do obiektu Question: question.answers << answer1; question.answers << answer2, etc.
Oczywiście najlepiej zrobić to w pętli
Na początek część I a później II i III. To wg. mnie najlepsze z wszystkich cast’ów (tzn. to się BARDZO przydaje przy 90% aplikacji, radzę obejrzeć kilka razy i zapamiętać wszystkie kroki).