Railsで集計アプリを作っていますが、配列の中にあるハッシュのソート機能で困っています。
この実装だと、昇順のみ、降順のみだとできるのですが、テーブルのヘッダーをクリックした際に降順と昇順を切り替えるような処理にしたいです。
ボトルネックになっているのはsort_by!メソッドですが、この部分にascやdescを渡す方法はありますでしょうか?
知っている方がいらっしゃいましたらご教授頂けますと幸いです。
Ruby
1def get_aggregates 2 aggregate = [ 3 { 4 id: 1, 5 count1: 1, 6 count2: 2, 7 count3: 3, 8 }, 9 { 10 id: 2, 11 count1: 2, 12 count2: 2, 13 count3: 3, 14 }, 15 { 16 id: 3, 17 count1: 2, 18 count2: 3, 19 count3: 3, 20 }, 21 ] 22end
Ruby
1class AggregateController < ApplicationControll 2 3 def index 4 5 column = params[:column] ? params[:column] : "id" 6 7 @aggregates = get_aggregates().sort_by! { |x| x[:"#{column}"] } 8 9 end 10 11end
Ruby
1 2module ApplicationHelper 3 4 def sort_order(column, title) 5 6 link_to title, column: column 7 8 end 9 10end 11
html
1 2<thead> 3 4 <tr> 5 6 <th><%= sort_order("id", "ID") %></th> 7 8 <th><%= sort_order("count1", "count1")%></th> 9 10 <th><%= sort_order("count2", "count2")%></th> 11 12 <th><%= sort_order("count3", "count3")%></th> 13 14 </tr> 15 16</thead> 17
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。