2008-12-10 95 views
2

所以我自學Ruby on Rails的,具有PHP背景。我已經寫了名爲「2NDP.」我想在導軌上重新創建這個在Ruby中馬虎,證明了概念PHP應用程序(但更基本,更乾淨,並用更好的界面),這樣我就可以學習一些基礎。使用「引用」爲同一類型的多個項目

2NDP是一個網站,您可以基本編寫自己的「選擇自己的冒險」書籍,但與其他人合作。我使用PHP/MySQL進行這項工作的方式是,我有一個故事表和一張表格。這些頁面屬於故事(顯然),但每個頁面最多可以引用四個其他頁面,具有四個單獨的列,每個列可以引用每個可能的頁面ID。

所以,現在在我的RoR應用程序,我有「故事」具有與它們相關的「頁面」。我需要一種方法讓頁面彼此相互引用,但每頁可能有多個引用(一個頁面可能引用多達四個其他頁面)。

我很喜歡那個回報率了,但有什麼辦法來實現優雅這類系統的「引用」的事情嗎?請記住,我唯一的RoR經歷是通過四篇教程進行的,我試圖重新應用我所學到的「實際應用」。

+0

我想這是第666次問題標記爲「軌道」 d: – 2008-12-10 02:11:15

回答

2

相反然後具有四個單獨的柱,一個單獨的接合表可能更合適。例如:

頁面 - > LinkedPages - >頁面

然後你就可以創建一個has_many through關係。

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 
+0

謝謝!我仍然習慣了這種RoR思維,這似乎是一個非常好的和合乎邏輯的解決方案。 – 2008-12-10 16:23:07

0

Hates_,這是有益的,但如果有人需要一個更深入的解釋關於這種事情,read about it here

相關問題