对同一类型的多个项目使用“引用”

所以我自学了Ruby on Rails,有PHP背景。 我写了一个名为“ 2NDP ”的草率,概念validationPHP应用程序。我想在Ruby on Rails中重新创建它(但更基本,更干净,并且有更好的界面),所以我可以学到一些基础知识。

2NDP是一个网站,你可以基本上编写自己的“选择你自己的冒险”书籍,但与其他人合作。 我使用PHP / MySQL工作的方式是,我有一个故事表和一个页面表。 页面将属于故事(显然),但每个页面通过具有四个单独的列来引用最多四个其他页面,每个列可以引用一个可能的页面ID。

所以现在在我的RoR应用程序中,我有“故事”,其中包含与它们相关联的“页面”。 我需要一种方法来让页面相互引用,但每页可能有多个引用(一页最多可引用其他四页)。

我真的很喜欢RoR的“引用”东西,但有没有办法优雅地实现这种系统? 请记住,我唯一的RoR经验是通过四个教程,我正在尝试重新应用我所学到的“真实应用程序”。

而不是有四个单独的列,单独的连接表可能更合适。 例如:

Pages – > LinkedPages – > Pages

然后你可以创建一个has_many通过关系。

class Pages < ActiveRecord::Base has_many :linked_pages has_many :pages, :through => :linked_pages end class LinkedPages < ActiveRecord::Base belongs_to :pages, :class_name => "Pages", :foreign_key => "page_id" belongs_to :linked_pages, :class_name => "Pages", :foreign_key => "linked_id" end 

然后在使用Page对象时,您可以简单地说:

 my_page.pages 

Hates_,这很有帮助,但如果有人需要对这类事情进行更深入的解释, 请在此处阅读 。