class << self
def category_sort
order(small_category_id: "asc", id: "asc")
.group_by { |w| w.small_category.name }
end
end
これは現在のコードなので、このようなハッシュを得ることができます。モデルでgroup_byを2つ使用できますか?
small_category1 => [data1,data2,data3]
small_category2 => [data4,data5]
small_category3 => [data6,data7,data8]
モデルで2つのgroup_byを使用できますか?私はプログラムを書く方法がわかりません。私はbig_categoryを持っていますので、このようなハッシュを作成したいと思います。
big_category1 => small_category1 => [data1,data2,data3]
=> small_category2 => [data4,data5]
big_category2 => small_category3 => [data6,data7,data8]
現在、私はこのような形を得ることができます。
class << self
def category_sort
r = order(small_category_id: "asc", id: "asc")
.group_by { |w| [w.small_category.big_category.name, w.small_category.name] }
hash = Hash.new { |h,k| h[k] = {} }
r.each do |k, v|
hash[k[0]][k[1]] = v
end
end
end
スマートな方法がありますか?