2

同じモデルで has_one が has_many の関係を通過する運が良かった人はいますか? 私は得続けます

ActiveRecord::HasOneThroughCantAssociateThroughCollection: has_one :through 関連付けを持つことはできません

has_many の結果のセットを取得し、特定のキーでフィルター処理して、has_one 関係と呼ぶのは簡単なようです。

レールの使用 3.2.12

これが現在の私の協会です。参加は別のモデルです。

has_one :original_participation, :through => :participation

has_one :original_participant, :through => :original_participants, :foreign_key => "organization_id"

has_many :original_participants,
  :through => :original_participation,
  :source => :participants

この最後の関連付けを調べて、organization_id でフィルター処理する必要があります。

ActiveRecord::HasOneThroughCantAssociateThroughCollection: has_one :through アソシエーション 'Surveys::Participant#original_participant' を持つことはできません。ここで、:through アソシエーション 'Surveys::Participant#original_participants' はコレクションです。代わりに、:through オプションで has_one または belongs_to 関連付けを指定してください。

4

1 に答える 1

2

has_one では :through は必要ありません。仲介関係は必要ありません。

あなたがやろうとしていることを私が知っていると思うなら、あなたはテストの階層を持っています:

has_one test_parent, :class_name => "Test", foreign_key: "child_test"

has_many tests

それらを呼び出すには:

@my_array_of_children = tests

@my_parents_id = test.id

于 2013-06-26T21:01:56.827 に答える