Ruby on rails 我可以在模型中使用两个分组吗?
在模型中是否可以使用两组?我不知道如何写程序。我有一个大类,所以我想创建这样的散列Ruby on rails 我可以在模型中使用两个分组吗?,ruby-on-rails,Ruby On Rails,在模型中是否可以使用两组?我不知道如何写程序。我有一个大类,所以我想创建这样的散列 class << self def category_sort order(small_category_id: "asc", id: "asc") .group_by { |w| w.small_category.name } end end small_category1 => [data1,data2,data3] small_category2
class << self
def category_sort
order(small_category_id: "asc", id: "asc")
.group_by { |w| w.small_category.name }
end
end
small_category1 => [data1,data2,data3]
small_category2 => [data4,data5]
small_category3 => [data6,data7,data8]
big_category1 => small_category1 => [data1,data2,data3]
=> small_category2 => [data4,data5]
big_category2 => small_category3 => [data6,data7,data8]
目前我可以像这样得到上面的表格
class << self
def category_sort
order(small_category_id: "asc", id: "asc")
.group_by { |w| w.small_category.name }
end
end
small_category1 => [data1,data2,data3]
small_category2 => [data4,data5]
small_category3 => [data6,data7,data8]
big_category1 => small_category1 => [data1,data2,data3]
=> small_category2 => [data4,data5]
big_category2 => small_category3 => [data6,data7,data8]
class如果要在一行中编写相同的逻辑,使其看起来更干净:
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
class如果要在一行中编写相同的逻辑,使其看起来更干净:
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
class嘿,你可以这样试试
class << self
def category_sort
order(small_category_id: "asc", id: "asc")
.group_by { |w| [w.small_category.big_category.name, w.small_category.name] }
.each_with_object(Hash.new { |h,k| h[k] = {} }) {|(k,v),h| h[k.first][k.last] = v}
end
end
class{key.last=>value}}.map(&:to_a).reduce(:concat).to_h
结束
结束
嘿,你可以这样试试
class << self
def category_sort
order(small_category_id: "asc", id: "asc")
.group_by { |w| [w.small_category.big_category.name, w.small_category.name] }
.each_with_object(Hash.new { |h,k| h[k] = {} }) {|(k,v),h| h[k.first][k.last] = v}
end
end
class{key.last=>value}}.map(&:to_a).reduce(:concat).to_h
结束
结束