我有一個名為 Task 的 Rails 模型。我在我的模型中使用自參考設計
class Task < ApplicationRecord
belongs_to :parent, class_name: "Task"
has_many :children, class_name: "Task",foreign_key: "parent_id"
end
所以當我創建我的第一個物件時,它一直說“父必須存在”。我不確定如何將一個物件作為這個層次結構中的根。請在這件事上給予我幫助
uj5u.com熱心網友回復:
從 更改belongs_to :parent, class_name: "Task"為belongs_to :parent, optional: true, class_name: "Task"。
這樣,您就可以在沒有父級的情況下創建任務。要驗證任務是否為子任務,您可以檢查 parent_id 是否具有任何值:
def child?
parent_id.present?
end
參考:https : //api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/376641.html
標籤:红宝石轨道 PostgreSQL的 活动记录
