是否有一種優雅的方式在rails中的views/controller中實現sort asc和desc動作?在rails中實現排序asc或desc的最佳方式
我所擁有的是通用的index.html.erb視圖,它列出了某些模型的所有數據,並且我想添加一些小按鈕(或使標題可點擊)來按列升序或降序對列進行排序。我想知道是否有一個優雅和有效的方法來做到這一點,或者我應該爲每個列(或按鈕)添加一個新的控制器,我希望這個動作發生。
是否有一種優雅的方式在rails中的views/controller中實現sort asc和desc動作?在rails中實現排序asc或desc的最佳方式
我所擁有的是通用的index.html.erb視圖,它列出了某些模型的所有數據,並且我想添加一些小按鈕(或使標題可點擊)來按列升序或降序對列進行排序。我想知道是否有一個優雅和有效的方法來做到這一點,或者我應該爲每個列(或按鈕)添加一個新的控制器,我希望這個動作發生。
以下是我正在使用的兩個示例。第一個與@plans
是我只想從最低到最高的小數點。另一個例子有點複雜,我想從最新到最舊的用戶文件。然後我使用第二個變量按創建日期對文件進行分組。在控制器中執行的兩個示例。
@plans = Plan.order("price")
@files= @user.files.order("id DESC").all
@dates = @files.group_by { |t| t.created_at }
對於您視圖中的可點擊按鈕,請查看Ryan Bates的Railscast情節,其中涉及此信息。
我最近使用了一種叫做sorted
在情況良好效果的寶石,你要使用這樣的預打包的解決方案,而不是推出自己的。
這裏是數據的關係,告訴您如何在加入順序
@results = Result.has_pro.ascending(:name).page(params[:page])
感謝訪問的名字,我用railscast形式給出 – marimaf 2012-05-06 19:21:41
如果這種代碼在視圖,控制器或幫手來實現? – sqrcompass 2015-06-17 11:19:09
執行'@ user.files.order(id::desc)'是最簡單的方法,如果你是靜態類型的話。 如果它的動態更好地執行'@ user.files.order(「#{criteria}#{direction}」)' – Lomefin 2015-11-20 13:52:23