Error When Sorting


#1

Got a bug I cannot eliminate. My ajax style sorting looks cool but the
position change is never updated. The error (at bottom points to line
52 in my controller and I have indicated that line).

#view

Test Questions

<%= render(:partial => "list_questions") %>
<%= sortable_element("sortable_list", :complete => visual_effect(:highlight, "sortable_list"), :update => "question", :url => {:action => "update_question_positions", :id => @test.id }) %>

#view _list_questions


    <% @test.questions.each do |question| -%>
  1. question.question %>

  2. <% end -%>

#controller
def update_question_positions
params[:sortable_list].each_with_index do |id, position| #LINE 52
Question.update(id, :position => position+1)
end
render :action => “show”
end

#error
Processing TestController#update_question_positions (for 127.0.0.1 at
2006-04-09 21:51:15) [POST]
Session ID: 7d95944ce75767f42f6d4910fd432687
Parameters: {“action”=>“update_question_positions”, “id”=>“5”,
“controller”=>“admin/test”}

NoMethodError (You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.each_with_index):
/app/controllers/admin/test_controller.rb:52:in
update_question_positions' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.0/lib/action_controller/base.rb:908:insend’


#2

Wierd. I changed “sortable_list” to “list” and it works. Not sure why
“sortable_list” wasn’t working . . . I don’t see a typo.