我正在尝试为我的webapp实现一个简单的搜索和排序.我正在关注railscast和这个railscast.
我作为链接使用的可排序函数的应用程序帮助程序是:
def sortable(column, title = nil)
title ||= column.titleize
css_class = column == sort_column ? "current #{sort_direction}" : nil
direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc"
link_to title, params.merge(:sort => column, :direction => direction, :page => nil), {:class => css_class}
end
Run Code Online (Sandbox Code Playgroud)
我在视图中使用这些.在控制器中我使用白名单:
@listingssearch.where(:vehicletype => 'Car').order(sort_column + " " + sort_direction).paginate(:page => params[:page], :per_page => 30)
Run Code Online (Sandbox Code Playgroud)
私人消毒方法:
private
def sort_column
Listing.column_names.include?(params) ? params[:sort] : "rateperhour"
end
def sort_direction
%w[asc desc].include?(params[:direction]) …Run Code Online (Sandbox Code Playgroud)