我看过很多主题,但我找不到自己的方法。
我有三个型号。 A,B和C在ActiveRecord :: Base之后继续。
A
belongs_to :b
parts:integer
B
belongs_to :c
C
name:string
我想得到的是来自A的部分之和,按照C.name分组但完全独立于数据库以获得这样的结果:
{
name1 => sumOfParts1,
name2 => sumOFParts2,
...
}
我现在得到的是:
@results = @as.joins(:b).group('bs.c_id').sum(:parts)
看起来像这样
{
1 => sumOfParts1,
2 => sumOFParts2,
...
}
我是Rails的新手,但我想尽可能干净。
答案 0 :(得分:1)
你可以这样做:
@results = @as.joins(:b => :c).group('cs.name').sum(:parts)
或尝试添加到A:
has_one :c, through: b
然后你可以这样做:
@results = @as.joins(:c).group('cs.name').sum(:parts)