在rails 3應用程序中,我有一個包含20多個問題和答案的表單。該頁面使用具有兩個級別的映射數組填充... q [0} .blah是問題數組,q [1] .yada是答案數組。我使用jQuery在單擊單選按鈕時提交每個已更改的答案。目前我有以下。Rails 3 JQuery更新其中「.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
我命名使用的答案ID每個單選按鈕組。所以,在......在我有軌運行的服務器端控制檯窗口我回來由一個答案ID和每一個問題的答案PARAMS:
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"}
然後沿着錯誤:
ActiveRecord::RecordNotFound (Couldn't find Answer without an ID)
如何修改控制器代碼以獲取答案ID和答案值?隱藏的領域也許?
感謝您的幫助。
更新:根據您的請求,邁克。輸出...
._ ._ ._ ._ ._ ._ ._ ._ ._ ._ ._ ._ ._某些-._。 _ ._ ._ ._ ._非常
._問題_____從不__很少__次__ __經常__ __經常
1_ blah blah._ ._ ._ O ._ ._。O ._ ._ ._ O ._ ._ O ._ ._ ._。O
2_ blah blah._ ._ ._ O ._ ._。O ._ ._ ._ ._ ._。O._ ._ ._ O
3_ blah blah._ ._ ._ O ._ ._ ._ ._ ._ ._ O ._ ._ ._ ._Ø._ ._ ._ ._Ø
繼續
的O是可以在點擊需要更新時,單選按鈕。
更新2:每個請求,路由文件 -
resources :answers do
collection do
post :update_result
end
end
你能發佈這個表單的html輸出嗎? – mkly 2011-05-08 18:54:28
@Mike,謝謝你的期待。我更新了輸出。 – Jay 2011-05-08 21:58:30