2013-04-13 72 views
1

我正在爲Rails客戶構建一個多站點應用程序。功能是創建新網站並管理它們。多站點應用程序Rails中的網址模型名稱

我已經爲每個網站設置了子域名。防爆。

site1.example.com 
site2.example.com 

每個網站都有我們可以創建,編輯和銷燬的頁面。例如:

site1.example.com/pages/1 

問題是,網站有一些像「Contact」一樣的名稱的網頁。 所以我希望在url中顯示頁面的名稱。例如:

site1.example.com/contact 
site2.example.com/contact 

不管它是:

site1.example.com/pages/contact 

的def_param不是很好,因爲它顯示了網頁的名稱前標識。 Friendly_id gem具有slu feature功能,但我們有2個具有相同名稱的頁面。它在名字後面加了一個數字。例如:

site1.example.com/pages/contact 
site2.example.com/pages/contact--2 

關於如何構造這個的任何想法?

謝謝!

回答

1

validates_uniqueness_of可以在範圍參數中這樣做。

class Page < ActiveRecord::Base 
    validates_uniqueness_of :url, :scope => :site_id 
end 

http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_uniqueness_of

當然,控制器會檢查是否有與子域的頁面和,所以路線看起來非常正常。

以防萬一這裏是你如何讓子域

request.subdomain 

How to get the subdomain value from a url?

+0

由於這是工作! –

+0

np很高興能幫到你! – rovermicrover

相關問題