我有以下型号:
class PropertyType < ApplicationRecord
has_one :parent, :class_name => "PropertyType"
has_and_belongs_to_many :properties
end
它可以拥有自己的类类型的父级。但是,以下查询似乎都不起作用:
PropertyType.where("property_type_id IS NULL")
PropertyType.where(parent: nil)
我在这里缺少什么?
答案 0 :(得分:1)
我认为您可能需要:belongs_to
而不是:has_one
。您可能还想考虑使用命名外键,以便关系的方向更加清晰。在这种情况下,您需要显式指定外键:
class ProjectType
belongs_to :parent, class_name: "ProjectType", foreign_key: :parent_project_type_id
has_many :children, class_name: "ProjectType", foreign_key: :parent_project_type_id
# ...
end