【发布时间】:2015-01-21 11:05:54
【问题描述】:
Rails 4.1.7
我有 3 个模型。
# Report
class Report < ActiveRecord::Base
has_many :computed_values, dependent: :destroy
has_many :settlements, through: :computed_values
end
# ComputedValue
class ComputedValue < ActiveRecord::Base
belongs_to :report
belongs_to :settlement
end
# Settlement
class Settlement < ActiveRecord::Base
has_many :computed_values
has_many :reports, through: :computed_values
end
ComputedValue 有一个属性distance。
我想得到这样的建筑作品:Report.first.settlements.first.distance 即ComputedValue.find(report_id: Report.first.id, settlement_id: Report.first.settlements.first.id).distance
有什么优雅而快速的方法来实现它吗?
当我调用Report.first.settlements.first 时,Rails 已经从连接表computed_values 加载了第一个报告、第一个结算和记录的记录。
如何防止从computed_values 再次加载以查找值并使用已加载记录中的数据?
【问题讨论】:
标签: mysql ruby-on-rails-4 activerecord