Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 让最终用户在Rails中指定排序顺序的最佳方法_Ruby On Rails_Sorting_Interface - Fatal编程技术网

Ruby on rails 让最终用户在Rails中指定排序顺序的最佳方法

Ruby on rails 让最终用户在Rails中指定排序顺序的最佳方法,ruby-on-rails,sorting,interface,Ruby On Rails,Sorting,Interface,我正在寻找一个关于让最终用户从Rails应用程序的视图文件中设置由模型的“find”方法返回的结果集的排序顺序的最佳方法的建议。换句话说,我希望用户能够从选择列表中选择排序顺序 起初,我以为我可以把字符串放在:order参数中,但从安全角度看,这似乎是个坏主意 我想我总是可以使用一个基于选择列表中的关闭值的开关,但这似乎有点笨重 谢谢你的关注 我会使用AR::Base#column_名称来清理输入。比如: @models = Model.find(:all, :order => param

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

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

我想我总是可以使用一个基于选择列表中的关闭值的开关,但这似乎有点笨重

谢谢你的关注

我会使用AR::Base#column_名称来清理输入。比如:

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

您可以对其进行扩展,只需进行一些预处理,就可以改变您是要对每个键进行升序排序还是降序排序。希望这有帮助

这可能超出了您想要的范围,但最近,我一直依赖javascript为我处理后续排序。Tablekit()是原型的一个很好的表格分类工具,它不引人注目、快速且易于使用。它还包括一些细节,如就地编辑和列大小调整。

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

这个答案有点稀疏。。。你能详细说明一下吗?