我有一个名为" Person"有母亲"和父亲"字段(指向同一个类的一对一关系),所以现在我想得到一个人的所有孩子 我怎么能这样做?
这是模型
class Person < ApplicationRecord
has_many :mails, dependent: :destroy
has_many :phones, dependent: :destroy
has_one :spouse, class_name: 'Person'
has_one :father, class_name: 'Person'
has_one :mother, class_name: 'Person'
end
这是迁移
class CreatePeople < ActiveRecord::Migration[5.1]
def change
create_table :people do |t|
t.string :rut, unique: true
t.string :dv
t.string :names
t.string :paternal_surname
t.string :maternal_surname
t.date :birth_date
t.date :death_date
t.string :civil_status
t.string :sex
t.string :nationality
t.references :father
t.references :mother
t.references :spouse
t.timestamps
end
end
end
我想通过以下方式访问孩子:
Person.children
但我在RoR上真的很新,我不知道该怎么做。
答案 0 :(得分:0)
您需要指定一个人有很多孩子。类似于你如何说人有很多邮件和电话。
从那里,调整你的代码,说一个人属于父亲而不是一个。
class Person < ApplicationRecord
has_many :mails, dependent: :destroy
has_many :phones, dependent: :destroy
has_many :children, class_name: 'Person'
has_one :spouse, class_name: 'Person'
belongs_to :father, class_name: 'Person'
belongs_to :mother, class_name: 'Person'
end