我认为现在可以扩展呈现表格的相同控制器操作以处理传入的排序选项。例如,它可能是index
控制器中的当前方法。
form_for
因此,在您当前的页面中使用、select
助手和一个submit
重新调用的按钮构建一个表单index
。
params
在控制器中,您可以使用Rails 为您设置的散列访问在选择框中选择的值。例如,如果您的排序参数是“height”、“age”和“gender”,在 select lists 中,sort1
您可能有类似的代码sort2
sort3
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。