Ruby on rails 使用「;参考资料;对于相同类型的多个项目

Ruby on rails 使用「;参考资料;对于相同类型的多个项目,ruby-on-rails,Ruby On Rails,所以我在自学RubyonRails,有PHP背景。我已经编写了一个草率的、概念验证的PHP应用程序,名为“我想在RubyonRails中重新创建它(但是更基本、更干净,并且有更好的界面),所以我可以学习一些基础知识 2NDP是一个网站,你基本上可以写你自己的“选择你自己的冒险”的书,但合作,与其他人。我使用PHP/MySQL的方式是,我有一个故事表和一个页面表。这些页面将属于故事(显然),但每个页面将通过四个单独的列引用最多四个其他页面,每个可能引用的页面ID对应一个列 所以现在在我的RoR应用

所以我在自学RubyonRails,有PHP背景。我已经编写了一个草率的、概念验证的PHP应用程序,名为“我想在RubyonRails中重新创建它(但是更基本、更干净,并且有更好的界面),所以我可以学习一些基础知识

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

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


我真的很喜欢RoR的“引用”功能,但是有没有办法优雅地实现这种系统呢?请记住,我唯一的RoR体验是浏览四个教程,我正在尝试将我学到的知识重新应用到“实际应用程序”中。

与其拥有四个单独的列,不如使用单独的联接表。例如:

页面->链接页面->页面

然后你可以建立一种关系

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

当然,这很有帮助,但是如果有人需要对这类事情进行更深入的解释,。

我想这是第666个标有“rails”的问题D:谢谢!我仍然习惯于这种RoR心态,这似乎是一个非常好的逻辑解决方案。
my_page.pages