In update, position remains the same when scope changes. I think that a solution should be to trigger add_to_list_bottom but I can't think of any global way, especially in complex scope cases. When it is just a field I use something like this
class TodoItem < ActiveRecord::Base
acts_as_list :scope => :todo_list
add_to_list_bottom if todo_list_id_changed?
Is there a better way?
The use case here is when you move an item from one list to another. Thats a good use case and worth as feature. Let me think over this and get back to you.
I would also find this useful, since I am using this with acts_as_tree as well and this needs this functionality.
Also discussed (from 2009 though) at http://ramblings.gibberishcode.net/archives/one-activerecord-model-acting-as-a-list-and-tree/33
Ah, I forgot all about this.
There is no sure way of doing this, since you cannot predict what behavior is intended. We can however accept a block as callbacks or hooks.