我完全混淆了has_many:through對於我正在使用的數據集。所以,我有兩個表 - scheme_master和scheme_detail與has_many混淆:通過
scheme_master有這些領域 - ID,scheme_detail_id,primary_scheme_id
scheme_detail有一個相關領域 - ID
scheme_master中的每個方案都有一個主要方案這是自我參照scheme_master表。例如,方案1是方案1,2,3的主要方案。
相關代碼如下
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,通過:: child_schemes' – jvnill
它引發堆棧級別太深的錯誤。 :( –