私は属し、has_many 関係を持っています。
子は親に属する_親に_多くの子を持つ.
ただし、親が子を持つことができる別の方法もあります。それは、親のタイプのグループ化を作成するために使用する join_table を使用することです。
これを行う方法についての私のひどい推測は次のとおりです。
# child.rb
belongs_to :parent
belongs_to :parent_group, :dependent => :destroy
delegate :parent, :to => :parent_group
# parent.rb
has_many :children
has_many :children, through: :parent_groups
私は実際にはこれらの命名規則を使用していないことに注意してください。これらは、私の作業を匿名にするために変更されました。
次に、私の移行は次のようになります。
class CreateParentGroup < ActiveRecord::Migration
def self.up
create_table :parent_groups do |t|
t.integer :parent_id
t.timestamps
end
add_column :child, :parent_group_id, :integer
end
したがって、私の目標は、入力すると、parent_groupを介しParent.find(n).children
たChild オブジェクトと、それに直接関連するすべての子を返すようにすることです。
逆に、 を選択すると、親グループを介してChild.find(n).parent
いるかどうかにかかわらず、その親が選択されます。
そして最後に、parent_groups を選択し、親のコレクションを選択できるようになります。
何か案は?