2009-10-01 60 views
0

我有一個應用程序爲每個「帳戶」使用子域名。維護與子域的嵌套模型完整性?

從我讀過的這是很好的做法"Tie all top-level requests off the current account (subdomain)"

例如

def find_users 
    @users = @current_account.users 
end 

夠簡單。但是當我開始擁有深層嵌套的路線時,我不能使用淺層路由而不會丟失子域的範圍。

那麼如何實現淺層路由並保持這種完整性呢?

我想到的唯一的事情是:

  1. 要包含一個外鍵中的一些更深入地嵌套模型的頂層(子域)。但這似乎有點破解。

  2. 要使用before_filter來追溯關聯並檢查子域是否爲真。這似乎更合乎邏輯,但仍然感覺不太好。

有沒有人對此有所瞭解?

回答

0

我一直在玩acts_as_restricted_subdomain最近可能有外鍵使用,並發現它非常容易使用:所以如果你有指定的帳戶/子

http://github.com/penguincoder/acts_as_restricted_subdomain 

它覆蓋的ActiveRecord的默認行爲User.find(123)變得與Subdomain.users.find(123)相同,這使得編寫代碼變得更清潔,因爲它允許你編寫你的應用程序而不用擔心子域的限制。

擁有外鍵的主要缺點是數據庫查詢可能需要更長時間才能執行,但是放入適當的命名索引應該可以緩解這一點。

+0

謝謝我會檢查鏈接 – Cameron 2009-10-06 12:03:26