i am trying to use a sortable list on my app. i used the chapter in
Rails recipes as a reference on how to do it. i have the following code
in my controllerr:
def sort
@user_list = User.find(params[:id])
@user_list.tasks.each do |task|
task.position = params[''user-list''].index(task.id) + 1
task.save
end
render :nothing => true
end
and in my view, i have:
<h2><%= @user_list.full_name %>''s Tasks</h2>
<ul id="user-list">
<% @user_list.tasks.each do |task| -%>
<li id="item_<%= task.id %>">
<%= task.task_name %>
</li>
<% end %>
</ul>
<%= sortable_element ''user-list'',
:url => { :action => ''sort'', :id => @usr_list },
:complete => visual_effect(:highlight, ''user-list'')
%>
everything seems like it works great... until i refresh the screen and
see that everything is back to the way it was. i look in the database,
and sure enough... nothing has changed. did i do something wrong?
--
Posted via http://www.ruby-forum.com/.
> :url => { :action => ''sort'', :id => @usr_list },@usr_list might be your problem... -Adam -- Posted via http://www.ruby-forum.com/.
yeah, saw that and almost slapped myself for letting something like that get by... unfortunately it didn''t fix anything. -- Posted via http://www.ruby-forum.com/.
i figured it out. there were some other things i had changed while
trying to get it to work after the first error. changed everything back
and it is fine now.
it does bring up some questions i have about the sortable lists though.
i can make one now, but i would like to have a better understanding of
how everything works.
one line in particular:
task.position = params[''user-list''].index(task.id.to_s)
+ 1
how does this line get the right value? what is the value of
index(task.id.to_s) and why is it to_s instead of just task.id?
wouldn''t
it need to be numerical in order to have 1 added to it?
--
Posted via http://www.ruby-forum.com/.