Предположим, у меня есть 3 модели: A
, B
и C
(где A
имеет много B
, а B
имеет много C
):
class A < ActiveRecord::Base
has_many :bs
end
class B < ActiveRecord::Base
belongs_to :a
has_many :cs
end
class C < ActiveRecord::Base
belongs_to :b
end
Так что здесь все отлично работает. С A.first.bs
я получаю все экземпляры B
, связанные с первым экземпляром A, с C.last.b
я получаю экземпляр B
, связанный с последним экземпляром C
и т. Д.
Но если я хочу быть в состоянии сделать A.first.cs
и C.last.a
, как я могу это сделать?
Я хочу сделать это, потому что я хочу быть в состоянии сделать C.all.joins(:a)
, потому что я хочу построить некоторую статистику об экземплярах C
, сгруппированных по A
. Есть ли другой способ сделать то же самое?