скачаем и подключим js: nestedSortable jQuery Plugin 1.2.1 (http://mjsarfatti.com/sandbox/nestedSortable/)
в хелпере:
"<script>$('##{class_name_plural}').nestedSortable({в контроллере:
disableNesting: 'no-nest',
forcePlaceholderSize: true,
handle: '.handle',
items: 'li',
opacity: .4,
placeholder: 'placeholder',
tabSize: 25,
tolerance: 'pointer',
toleranceElement: '> div',
update: function(){
$.ajax({
type: 'post',
data: $('##{class_name_plural}').nestedSortable('serialize'),
dataType: 'script',
complete: function(request){
$('##{class_name_plural}').effect('highlight');
},
url: '#{url}'})
}
});</script>".html_safe
def sort_sortable(object_class)ну и во view важно иметь вложенные элементы внутри тега <ol>
i=0
object_name = object_class.to_s.downcase
params[object_name].each do |object|
i+=1
o = object_class.find(object[0])
o.position = i
if object[1] == 'root'
o.parent = nil
else
o.parent = object_class.find(object[1])
end
o.save
end
end
Результат:
Комментариев нет:
Отправить комментарий