【发布时间】:2011-11-18 15:59:21
【问题描述】:
为了简化我的问题,假设我们有三个模型; 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
【问题讨论】:
标签: ruby-on-rails activerecord model relationships