gpt4 book ai didi

ruby-on-rails - 创建具有树结构的模型

转载 作者:数据小太阳 更新时间:2023-10-29 06:32:50 26 4
gpt4 key购买 nike

我有树状结构的类别。我试图通过为每个人定义一个 parent 来将他们联系在一起。 (我不知道如何调用属性 parent,所以它现在只是 category,但它表示父级)。

class Category < ActiveRecord::Base

has_one :category # the parent category

end

但这种关系以错误的方式结束。

getter 函数在子类别上(正确地)但是 category_id 存储在父类别上:

parent = Category.create(:name => "parent")
child = Category.create(:name => "child", :category => parent)

parent.id # 1
child.id # 2

child.category_id # nil
parent.category_id # 2

child.category.name # "parent" (!!)

parent 需要能够有多个 child ,所以这是行不通的。

最佳答案

您正在寻找的是自连接。查看 Rails 指南的这一部分:http://guides.rubyonrails.org/association_basics.html#self-joins

class Category < ActiveRecord::Base
  has_many :children, class_name: "Category", foreign_key: "parent_id"
  belongs_to :parent, class_name: "Category"
end

每个类别都将属于父类别,甚至是您的父类别。您可以创建一个您的最高级别类别都属于的单个类别父级,然后您可以在您的应用程序中忽略该信息。

关于ruby-on-rails - 创建具有树结构的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5109303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com