Menga tegishli va has_many munosabatlarim bor.
Bola ota-onaga tegishli Ota-onaning ko'p farzandi bor.
Biroq, menda Ota-ona farzand ko'rishning yana bir usuli bor va bu men ota-ona turini guruhlash uchun foydalaniladigan join_table orqali.
Buni qanday qilish haqida mening dahshatli taxminim:
# 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
E'tibor bering, men ushbu nomlash qoidalaridan foydalanmayman. Bular mening ishimni anonim saqlash uchun o'zgartirildi.
Keyin mening migratsiyalarim quyidagicha ko'rinadi:
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
Shunday qilib, mening maqsadim shundan iboratki, agar Parent.find(n).children
ni yozsam, u ota-ona_guruhi orqali boʻlgan Child obyektlarini va unga bevosita aloqador boʻlgan bolalarni qaytaradi.
Aksincha, agar men Child.find(n).parent
ni tanlasam, u ota-ona guruhi orqalimi yoki yo'qmi, o'zining ota-onasini tanlaydi.
Va nihoyat, men parent_groups va ota-onalar to'plamini tanlashim mumkin edi.
Har qanday fikr bormi?