【发布时间】:2016-12-05 08:49:06
【问题描述】:
我对为我正在使用的数据集实现 has_many :through 完全感到困惑。所以我有两个表 - scheme_master 和 scheme_detail
scheme_master 有这些字段 - id、scheme_detail_id、primary_scheme_id
scheme_detail 有一个相关字段 - id
scheme_master 中的每个方案都有一个主方案,该方案自引用到 scheme_master 表。例如,方案 1 是方案 1、2、3 的 primary_scheme。
相关代码如下
scheme_master.rb
class SchemeMaster < ActiveRecord::Base
has_one :scheme_detail
has_many :child_schemes, class_name: "SchemeMaster",
foreign_key: :primary_scheme_id, primary_key: :id
end
scheme_detail.rb
class SchemeDetail < ActiveRecord::Base
belongs_to :scheme_master
end
我的问题是如何访问我所有子计划的计划详细信息?
目前,
SchemeMaster.find(1).child_schemes
给了我所有的子方案 - 1,2,3,但我想要一个关联来引用 child_schemes 的 scheme_detail。谢谢。
【问题讨论】:
-
试试
has_many :scheme_details, through: :child_schemes -
它会抛出堆栈级别太深的错误。 :(
标签: ruby-on-rails ruby associations