Candidate posiada Test, a Test posiada wiele Question.
Model CandidateQuestion miesza id Candidate i Question oraz posiada dodatkowe pole answer. Chciałbym zrobić tak, że wyświetla mi się Test, czyli np 3 Question które posiada i pod każdym jest odpowiedź (answer) po kliknięciu ‘Zakończ test’ wysłało wszystko razem.
W czym dokładnie jest problem? Jeśli chodzi o generowanie formularzy to polecam simple_form + cocoon. Nie testowałem czy dla tego konkretnego przypadku występują jakieś większe problemy. Jeśli tak to napisz, postaram się pomóc.
No własnie chodzi o to że nie bardzo wiem jak się w ogóle za to zabrać. Jak robiłem formularz dla Test to sobie poradziłem. A teraz chodzi o to że chcę wyświetlić ten Test który ma przypisane n Pytań, a do każdego pytania mieć miejsce na odpowiedź, która ma się zapisywać w modelu CandidateQuestion wraz z question_id i candidate_id
Wydaje mi się że wystarczy jeśli po prostu przygotujesz odpowiedni widok który będzie wypisywał formularz dla Test z pytaniami (to będzie dosyć prosta pętla wypisująca wszystkie pytania które są powiązane z aktualnie wybranym Testem). Następnie dla każdego pytania wyświetlasz np. input z etykietą taką jak pytanie, a wpisaną w tym input wartość traktujesz jako odpowiedź. Potem musisz tylko napisać metodę odbierającą dane wpisane do tego formularza (tutaj ważne żeby ustawić odpowiednie permitted_params). candidate_id oraz question_id zrobiłbym jako ukryte pola przesyłane wraz z formularzem.
Tutaj jest fajny artykuł jak budować zagnieżdzone formularze używając accept_nested_attributes_for. Jednak w miarę skomplikowania formularza prędzej czy później FormObjects będzie niezastąpiony.
Wydaje mi się że w ten sposób uzyskasz mniej więcej to co chciałeś.
Mam tylko wątpliwości co do wyświetlania fields_for ale to prostu sprawdź u siebie w aplikacji czy jest ok.