我有一些相关的模型:
class Employee < ActiveRecord::Base
has_many :check_ins
has_many :weigh_ins, through: :check_ins
end
class Client < ActiveRecord::Base
has_many :check_ins, -> { order(week: :asc) }, dependent: :destroy
has_many :weigh_ins, :through => :check_ins, dependent: :destroy
end
class CheckIn < ActiveRecord::Base
belongs_to :client
belongs_to :employee
has_one :weigh_in, dependent: :destroy
end
class WeighIn < ActiveRecord::Base
belongs_to :client
belongs_to :check_in
end
我需要能够在日期范围内提取employee
个check_ins
:
check_ins = Employee.check_ins.where("created_at >= ? AND created_at <= ?", start_date, end_date)
然后我需要遍历这些check_ins
并在一个月内抓住他们的客户端以及该客户的所有其他check_ins
,并访问每个check_in
的{{1}}为了比较weigh_in
字段以计算减重率。
weight
虽然这有效,但它会导致大量的内存膨胀,我希望有一种方法可以加载一些东西,所以我不知道所以我不需要进行数百次SQL查询。
我对于如此冗长和具体而道歉,我希望某些事情会对某些人有所帮助。