我认为现在可以扩展呈现表格的相同控制器操作以处理传入的排序选项。例如,它可能是index控制器中的当前方法。
form_for因此,在您当前的页面中使用、select助手和一个submit重新调用的按钮构建一个表单index。
params在控制器中,您可以使用Rails 为您设置的散列访问在选择框中选择的值。例如,如果您的排序参数是“height”、“age”和“gender”,在 select lists 中,sort1您可能有类似的代码sort2sort3
def index
sort_list = []
# assumes the value of the sort list is the column name
sort_list << params[:sort1] if params[:sort1]
sort_list << params[:sort2] if params[:sort2]
sort_list << params[:sort3] if params[:sort3]
if sort_list.blank?
@clients = Client.all
else
@clients = Client.all(:order => sort_list.join(", "))
end
...
end
我知道你说过你不想要一个插件(gem),但我不得不提到一个很棒的插件,它甚至可以用于非常复杂的排序(和过滤),称为ransack。