15

所以,我正在开发一个应用程序,我希望用户能够在“文件夹”中对对象进行分组。基本上:

User has_many :foos

Foos 不必在文件夹中,但可以。在这种情况下:

Folder has_many :foosFoo belongs_to :folder

现在,我希望能够设置文件夹以便它们可以嵌套。我觉得这有点像...

Folder has_many :folders

我听说这种自我参照关系没什么大不了的,但我真的不明白它是如何工作的。我无法弄清楚这应该如何在模型中声明以及我需要在数据库中提供哪些列。

谁能提供一个例子?我还重视任何建议/提醒/警告/经验教训,您可以提供有关在应用程序中建立这种关系的建议。

谢谢!

4

1 回答 1

32

在此处查看 coreyward 对问题的回答: 创建具有树结构的模型

基本上你想在你的文件夹表中添加一个“parent_id”字段,然后在你的文件夹模型中建立一个关系,如下所示:

belongs_to :parent, :class_name => "Folder"
has_many :folders, :foreign_key => "parent_id"
于 2011-02-24T20:20:46.493 回答