2014-01-24 3 views
1

질문을 제기하고 2x2 그리드에있는 네 개의 버튼 중 하나에서 답변을받는 퀴즈 앱을 개발 중입니다. 나는 각 버튼을 별도의 양식으로 만들고 숨겨진 필드가있는 입력 데이터를 추가하려고합니다. 나는 remote : true를 사용하여이 데이터를 눈에 잘 띄지 않는 자바 스크립트를 통해 레일로 전달한다. 불행히도 정답의 버튼을 누를 때 때때로 가짜 답변이 전달되기 때문에 퀴즈 앱에 아주 이상한 오류가 나타납니다. 내 컨트롤러를 살펴보고 꽤 오랫동안 보았을 때, 나는 뭔가 이상한 일이 일어나고 있으며 잘못된 형식이 브라우저에 의해 제출되고 있다고 확신한다. 잘못된 양식 데이터가 Rails에 제출되었습니다

내보기에 그 답 양식

은과 같이 생성되고있다 :

<div id="answers"> 
    <% @choices.each_slice(2) do |first_two| %> 
     <div class="row"> 
     <% first_two.each do |choice| %> 
      <div class="col-md-6"> 
       <%= form_for(@exam, remote: true) do |f| %> 
        <%= hidden_field_tag 'answer', choice.id %> 
        <%= hidden_field_tag 'fIndex', @facts.index(@currentFact) %> 
        <% fact_index = @facts.index(@currentFact) %> 
        <%= f.submit "#{choice.answer}", class: "btn btn-default btn-answer #{answer_size(choice.answer)} ", id: "answer#{choice.id}" %> 
       <% end %> 
      </div> 
     <% end %> 
     </div> 
    <% end %> 

각 형태가 동일한 ID (좋지 않은) 및 클래스가 있음을 알 수 있습니다, 나는이의 근원이라고 생각 내 고통. 어떻게 바꿀 수 있니? 나는 이런 식으로 일을하지 않고 단지 폼 데이터를 link_to 헬퍼 (post) 메소드를 통해 전달하고 싶습니다 : post, 그러나 나는 그것이 가능하다고 생각하지 않습니다. 어떤 제안?

답변

0

양식에 ID를 부여하려는 경우 form_for 옵션에서 지정할 수 있습니다. 또한 fact_index가 설정되어 있지만 사용하고 있지 않은 것 같습니다. 다음이 작동해야합니다.

<%= form_for(@exam, remote: true, id: 'q_' + @exam.id) do |f| %> 
    <%= hidden_field_tag 'answer', choice.id %> 
    <%= hidden_field_tag 'fIndex', @facts.index(@currentFact) %> 
    <%= f.submit choice.answer, class: "btn btn-default btn-answer #{answer_size(choice.answer)} ", id: "answer#{choice.id}" %> 
<% end %> 
관련 문제