最终用户的最佳方式是在Rails中指定排序顺序

时间:2009-04-06 22:14:21

标签: ruby-on-rails sorting interface

我正在寻找关于让Rails应用程序的最终用户查看文件的最佳方法的建议,设置模型的“find”方法返回的结果集的排序顺序。换句话说,我希望用户能够从选择列表中选择他们的排序顺序。

最初,我认为我可以把我放在:order参数中的字符串放入,但从安全的角度来看,这似乎是一个坏主意。

我想我总是可以使用基于选择列表中的值的开关,但这看起来有点笨重。

谢谢你的期待。

3 个答案:

答案 0 :(得分:4)

我会使用AR :: Base#column_names来清理输入。类似的东西:

@models = Model.find(:all, :order => params[:sort].select({|name| Model.column_names.include? (name) } ).join(',') )

您可以通过一些预处理对此进行扩展,以改变您是否要使用每个键对升序或降序进行排序。希望这有帮助!

答案 1 :(得分:2)

这可能超出了你想要的范围,但最近,我一直依靠javascript来处理后续的排序。一个很好的原型表分类器是Tablekit(http://www.millstream.com.au/view/code/tablekit),它不引人注目,快速且易于使用。它还包括诸如就地编辑和列大小调整等细节。

答案 2 :(得分:0)

rails可以从cakephp scaffold(cakephp中的index()上的paginator sorter复制)