2011-05-08 9 views
1

레일 3 앱에는 20 가지 이상의 질문과 답변이있는 양식이 있습니다. 페이지는 두 개의 레벨을 가진 매핑 된 배열을 사용하여 채워집니다 ... q [0} .blah는 질문 배열이고 q [1] .yada는 응답 배열입니다. 라디오 버튼을 클릭했을 때 각각의 변경된 답변을 제출하기 위해 jQuery를 사용하고 있습니다. 현재 나는 다음과 같은 것을 가지고있다.Rails 3 JQuery update ".find params [: id]"가 작동하지 않습니다.

전망 :

<%= form_tag update_result_answers_path, :remote => true do %> 
    <% @answers.each do |q| %> 
     <%= q[0].question %> 
     <% [ 1, 2, 3, 4, 5 ].each do |f| %> 
     <%= radio_button_tag q[1].id, f, f == q[1].score, :class => 'submittable' %> 
     <% end %> 
    <% end %> 
<% end %> 

제어기 (이 잘못)

def update_result 
    @answers = Answer.find params[:id] # THIS LINE PRODUCES THE ERROR BELOW 
    @answers.update_attributes params[:score] 
    end 

I는 응답 ID를 사용하여 각 라디오 버튼 세트라는.

ActiveRecord::RecordNotFound (Couldn't find Answer without an ID) 
: 다음

Parameters: {"22"=>"1", "6"=>"1", "7"=>"1", "12"=>"3", "13"=>"1", "8"=>"2", "14"=>"1", "15"=>"3", "authenticity_token"=>"q2jW71ndaw4vkbTP9qt0Tuo+sOUhdF/Kf4xTf6Up0AY=", "utf8"=>"✓", "16"=>"4", "17"=>"1", "1"=>"1", "18"=>"1", "2"=>"5", "3"=>"4", "19"=>"4", "20"=>"5", "21"=>"1", "4"=>"2", "5"=>"2"} 

오류를 다음과 : 그래서 ... 내가 레일 서버 실행되고있는 콘솔 창에 내가 대답 ID와 모든 질문에 대한 대답으로 구성된 PARAMS를 다시 얻을

컨트롤러 ID를 수정하여 답변 ID와 답변 값을 얻으려면 어떻게해야합니까? 어쩌면 숨겨진 필드일까요?

도움 주셔서 감사합니다.

업데이트 : 요청에 따라 마이크. 출력 ...

_ _ ._ ._ ._ ._ 매우 매우

_ 질문 .__ Never__ ._ 드물게 ._ ._ 시간 ._ ._ 종종 ._ ._ ._ 자주

1 __ bl_blah._ ._ ._ ._ ._ ._ ._ ._ ._ ._ ._ ._ O

2_ 예 : _

3_ blah blah._ ._ ._ ._ ._ ._ O_____ O___ ._ ._ O ._ ._ ._ ._ O

을 계속했다 O의 업데이트해야 클릭 라디오 버튼입니다.

업데이트 2 : 요청에 따라, 경로 파일 -

resources :answers do 
    collection do 
     post :update_result 
    end 
    end 
+0

이 양식의 html 출력을 게시 할 수 있습니까? – mkly

+0

@Mike, 찾아 봐 주셔서 감사합니다. 출력으로 업데이트했습니다. – Jay

답변

0

무엇을 당신의 루트 파일이 update_result_answers_path에 대한 생겼을까?

params[:id] 경로가 그것을 정의하고 양식에서 작동하는 개체가 그것을 포함하지 않는 한 불가사의하게 표시되지 않습니다. form_for _object_이 아닌 일반 form_tag을 사용 중이므로 양식이 개체에서 직접 작동하지 않습니다.

jQuery를 통해 "id"매개 변수를 전달해야 예제에 나열된 것을 수행해야 할 것입니다.

+0

경로는 게시물의 업데이트에 포함됩니다. 감사. – Jay

+0

@ 제이 그래서, 내가 생각했던 것처럼, 당신의 루트는 기본적으로 [: id] param을 제공하지 않을 것입니다. 들어오는 매개 변수를 붙여 넣기도하고 거기에 [: id] 매개 변수가 없으면 AR # 찾기가 실패하는 이유는 자신의 질문에 대답했습니다. – cpjolicoeur

+0

이전에는 경로에 매개 변수를 넣지 않았습니다. Google은 그럴 것이지만 전에는 본 적이 없습니다. – Jay

관련 문제