因爲我還不熟悉Ruby,所以我一直在努力爲我的Rails3/DataMapper項目中的排序構造一個優雅的解決方案。設置DataMapper:查詢字符串參數中的命令參數
DataMapper示例顯示如何使用帶有asc
或desc
參數的符號來排序restuls。例如:
Document.all(:order => [:created_at.desc])
什麼將params[:sort]
和params[:direction]
轉換爲DataMapper的可接受的格式最好的方法是什麼?
由於缺乏一個更好的主意,這是我到目前爲止有:
sort_order = (params[:sort] || 'created_at').to_sym
sort_obj = params[:sort_dir] == 'desc' ? sort_order.desc : sort_order.asc
Document.all(:order => [sort_obj])
它的工作原理,但感覺笨重。我當然做錯了。