세 가지 모델 인 "설문 조사", "질문"및 "답변"을 만들었습니다. 설문 조사 has_many 답변 has_many 질문 (그리고 그들 모두 위의 모델에 속하는). 레일스 라디오 버튼이 제대로 작동하지 않음 및 관련 문제
이
내가 질문을 표시하여 사용자 입력을 제출하려는 형태 :좀 더 이상의 질문을 작성하는 경우에 : 그것으로 몇 가지 문제가있다
<%= form_for(:quiz_responses, url: quiz_responses_path) do |f| %> <%= f.hidden_field :name, value: @survey.name %> <% @questions.each do |question| %> <ul> <%= f.hidden_field :question, value: question.content %> <%= f.label question.content %> <% question.answers.each do |answer| %> <%= f.hidden_field :answers, value: answer.content %> <%= f.label answer.content %> <%= f.radio_button(:user_answer, answer.content) %> <% end %>
예 2 질문, 나는 8 개의 라디오 버튼, 각 질문 4 (의도 된 결과)를 얻을 것이다. 그러나 각 질문에 대해 4 개의 라디오 상자 중 하나가 아닌 8 개의 라디오 상자 중 하나만 선택할 수 있으며
:user_answer
값이 하나만 제출됩니다. 이 문제를 어떻게 해결할 수 있습니까?이것은 대부분 # 1과 관련이 있지만
<%= f.hidden_field :answers, value: answer.content %>
은 양식 (최종 답변 값)을 제출할 때 하나의 값만 생성합니다. 모든 답안 값을 제출하기를 원합니다. (질문이 2 개있는 경우, 1 대신 8 개의 답안 값을 포함하는 params 해쉬를 얻습니다). 비슷한 문제가 모두 8 개 개의 라디오 버튼은 이름user_answer
이 있기 때문이다<%= f.hidden_field :question, value: question.content %>
중첩 된 필드에 대해 알아 보려면 다음 두 링크를 참조하십시오. http://railscasts.com/episodes/196-nested-model-form-part-1, http://railscasts.com/episodes/197-nested -model-form-part-2. 내 생각에 그건 네가 맞아. –
나는 분명히해야만했다. 설문지를 만들 때 양식에 중첩 필드를 사용했습니다. 위에 게시 한 양식은 설문 조사를 만든 후 사용자 입력을위한 설문 조사를 게재하는 것입니다. 중첩 된 양식이 최선의 방법인지는 잘 모르겠습니다. –
설문 조사를 저장했다면 왜 그것을 표시하기 위해 form_for가 필요합니까? 여기서 달성하고자하는 것이 무엇인지 명확하지 않지만 중첩 된 형식이 없으면 필드 나 다른 것에 대한 중복 ID를 얻을 가능성이 큽니다. 나는 아직도 그 철도 사고를 지켜 보라고 조언합니다. 이 웹 사이트는 초보자에게 매우 유용합니다. –