所以,我正在开发一个应用程序,我希望用户能够在“文件夹”中对对象进行分组。基本上:User has_many :foos
Foos 不必在文件夹中,但可以在文件夹中。在这种情况下:Folder has_many :foos
和 Foo belongs_to :folder
现在,我希望能够设置文件夹,以便它们可以嵌套。我觉得这有点像……Folder has_many :folders
我听说这种自我参照关系没什么大不了的,但我真的不明白它是如何运作的。我一直无法弄清楚这应该如何在模型中声明以及我需要在数据库中提供哪些列。
谁能提供一个例子?我也很重视您可以提供的关于在应用程序中建立这种关系的任何建议/提示/警告/经验教训。
谢谢!
最佳答案
在此处查看 coreyward 对问题的回答:Creating a model that has a tree structure
基本上你想在你的文件夹表中添加一个“parent_id”字段,然后在你的文件夹模型中设置一个关系,如下所示:
belongs_to :parent, :class_name => "Folder"
has_many :folders, :foreign_key => "parent_id"
关于ruby-on-rails - rails : How do self-referential has_many models work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5109893/