Rails 个活动记录中的自引用问题
Self Referencing problem in Rails active record
我有一个名为 Task 的 rails 模型。我在我的模型中使用自引用设计
class Task < ApplicationRecord
belongs_to :parent, class_name: "Task"
has_many :children, class_name: "Task",foreign_key: "parent_id"
end
所以当我创建我的第一个对象时,它一直说“父对象必须存在”。我不确定如何使对象成为此层次结构中的根。请帮我解决这个问题
从 belongs_to :parent, class_name: "Task"
更改为 belongs_to :parent, optional: true, class_name: "Task"
。
有了它,您将能够在没有 parent 的情况下创建任务。要验证任务是否为 child,您可以检查 parent_id 是否具有任何值:
def child?
parent_id.present?
end
参考:https://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
我有一个名为 Task 的 rails 模型。我在我的模型中使用自引用设计
class Task < ApplicationRecord
belongs_to :parent, class_name: "Task"
has_many :children, class_name: "Task",foreign_key: "parent_id"
end
所以当我创建我的第一个对象时,它一直说“父对象必须存在”。我不确定如何使对象成为此层次结构中的根。请帮我解决这个问题
从 belongs_to :parent, class_name: "Task"
更改为 belongs_to :parent, optional: true, class_name: "Task"
。
有了它,您将能够在没有 parent 的情况下创建任务。要验证任务是否为 child,您可以检查 parent_id 是否具有任何值:
def child?
parent_id.present?
end
参考:https://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html