2016-04-03 15 views

答えて

1

これはスコープとして書き込むことはできません。 Scopes in RailsはActiveRecord::Relationオブジェクトで動作し、データベースに対して実行されるSQLのクエリを生成することになっています。

しかし、メソッドは、データがデータベースから受信された後にarrayで呼び出されます。

group_byでグループ化するには、まずデータベースからデータをロードする必要があります。

あなたはアレイ上の独自のnested_group_by方法書くことができます:実際にデータベースからデータをロードするためにスコープを強制all

Team.all.nested_grouped_by(:type, :subtype) 

注:このように使用することができ

class Array 
    def nested_grouped_by(group_1, group_2) 
    group_by { |e| e.send(group_1) }. 
     map { |k, v| { k => v.group_by { |e| e.send(group_2) } } } 
    end 
end 

を配列を返します。

関連する問題