2012-06-01 128 views
0

有沒有一種方法可以在包含帶級聯刪除的外鍵的導軌中生成模型?我想要一個模型「遊戲」,根據兩個用戶的玩法,將兩個用戶連接到它。如何將這兩個用戶創建爲外部用戶對象,以便他們將a)在我加載遊戲對象時加載,以及b)如果其中一個用戶被刪除,則會自動刪除這兩個用戶。導軌中的外鍵模型生成

回答

0

事情是這樣的,也許:

用戶模式:

class User < ActiveRecord::Base 
    has_many :games, :dependent => :destroy 
end 

而且你的遊戲模式:

class Game < ActiveRecord::Base 
    belongs_to :user1, :class_name => "User", :foreign_key => "user1_id" 
    belongs_to :user2, :class_name => "User", :foreign_key => "user2_id" 
end 
+1

另外,記住了':依賴=>:destroy'位將努力爲破壞,不能刪除。如果你真的希望它能夠用於刪除,那麼如果你的數據存儲支持它,你可能需要編寫一個觸發器。 – David

+0

這些關係會在attr_accessible定義之前還是之後。我是全新的紅寶石和鐵軌。所以如果這是一個愚蠢的問題,請原諒我。 – smokingoyster

+0

我不認爲它有很大的不同。但是,你想要訂購它很好。 – BK22

0

如果你要使用的數據庫外鍵可以使用:

https://github.com/matthuhiggins/foreigner

使用像:

add_foreign_key(:games, :users, :column => 'user1_id', :dependent => :delete) 
add_foreign_key(:games, :users, :column => 'user2_id', :dependent => :delete)