Rails使用向上和向下箭头对列表​​进行排序

时间:2014-03-31 06:06:56

标签: jquery ruby-on-rails ruby

我想使用向上和向下箭头对我的列表进行排序意味着每行记录会有两个箭头向上和向下箭头。用户可以使用箭头对其列表进行排序,此顺序应该保存在数据库中。

enter image description here

如果有人已经这样做了,请帮我一些代码。

2 个答案:

答案 0 :(得分:2)

您可能希望在DB中添加一些存储可配置排序的方法,然后实现一些JS来管理更改顺序的请求(也可能更新视图)。

查看acts_as_list gem [1],它会在您的可订购模型中添加position列,并为您提供移动列表中项目的功能。

然后看看使用AJAX来管理上下移动的调用。那里有很多教程(这一篇来自2009年,现在有点老了,但原理是一样的[2])

[1] https://github.com/swanandp/acts_as_list

[2] http://railscasts.com/episodes/147-sortable-lists

答案 1 :(得分:0)

您需要在箭头中添加ajax,它会从"位置列调用move function到sub 1"并在上面添加一个。像这样:

YourModel.find_by(position: your-position-1).update(position: position+10101010) #10101010 is just a big number which I of, that your table isn't that long.
YourModel.find_by(position: your-position).update(position: your-position-1)
YourModel.find_by(position: position+10101010).update(position: your-position)

这是一个简单的交换算法。  下一步就是用Ajax更新表。