Ради упрощения моей задачи, скажем, у нас есть три модели;user
, flight
и plane
.Я хочу показать пользователю таблицу того, сколько раз они летали на каждом самолете.
Я полностью застрял в том, как этого достичь ... самое простое решение, которое я мог придуматьэто перебирать полеты, как это ...
flown_planes = {}
@user.flights.each do |f|
if flown_planes[f.plane.id]
flown_planes[f.plane.id] += 1
else
flown_planes[f.plane.id] = 1
end
end
Могу ли я как-то использовать .find
и .count
для достижения этой цели?Я уверен, что есть более чистый способ, чем выше.Пожалуйста, смотрите отношения ниже.
Рейс
class Flight < ActiveRecord::Base
belongs_to :user
belongs_to :plane
end
Самолет
class Plane < ActiveRecord::Base
has_many :flights
end
Пользователь
class User < ActiveRecord::Base
has_many :flights
end