Sorting(and updating) multiple lists on one page


#1

Hi people, ive been searching for a while and i cant find a solution for
this, im making a todo list with sortable items(and updated its position
on the server), it works very good when i have only one list but when i
have more than one the items are sorted in the view but not get
updated(at least all but one) and ill try to explain why so hope you can
give me a hand:

On the view i have this(all working):

<% for list in @lists %>


    <% for todo in list.todos.sort{|a,b| a.position <=> b.position} %>

  • <%= todo.content %>

  • <% end %>

<% end %>

Notice that im using above: Sortable.create(“listAjax<%= list.id %>” …
that way the lists are named diferently, non repeated with its id.

An in the controller i catch the para meters like this:

order = params[:listAjax]
#all the rest of the ordering process…

So here its the problem the lists are generated like this:

    ...
      ...
        ... when theres just one list i can cath its parameters with(for the first): order = params[:listAjax1]

        but when theres more list i dont know how, so the main question is, how
        i can cath the parameters of the multiple lists(one at the time of
        course while reordering its items) in the controller so i can update
        them?

        Any help, really cause this its driving me nuts.


#2

No one, its really that hard?


#3

If I understand correctly, the problem is that you don’t know in your
action whether to expect params[:itemlist1], or params[:itemlistN].
You could try something like:

params.to_a.each do |key, value|
if key.index(‘itemlist’) == 0
order = params[key]
# Process the order
end
end

Cheers,
Chris

On Jul 19, 6:01 pm, Evan T. removed_email_address@domain.invalid