2012-05-15 79 views
0

我一直在挖子域圍繞Rails的幾天,並沒有發現這個還沒有一個很好的解釋...Rails的:最簡單的方法把博客上的一個子

我有一個導軌有一個博客集成到它的應用程序,我想把這個博客放在一個子域中。 IE瀏覽器。 blog.myapp.com

現在,博客中我希望用戶能夠查看帖子,blog.myapp.com/posts/123。但是,如果用戶要點擊該網站上的任何其他資源,例如說videos,我希望它們被重定向回根,即。 www.myapp.com/videos/123。我不希望blog.myapp.com/videos...導致路由錯誤,我只是希望它重定向。

基本上,我在尋找安裝一個子域最簡單的方式,並指定特定的控制器使用子域名和別人不一樣。理想我也不像控制器層處理redirection(重定向)兩種方式,所以在我的意見可以鏈接來回東西只是用助手一樣post_path(123)video_path(123)和子域將自動使用或不使用基於該控制器是服務的觀點。

我試圖把一個約束所有控制器塊,即:

constraints :subdomain => 'www' do 
    resources :sessions 
    resources :users 
    resources :videos 
      root :to => 'home#show' 
end 

constraints :subdomain => 'nexturb' do 
    resources :posts 
    root :to => "posts#index" 
end 
root :to => 'home#show' 

然而,這似乎並沒有很好地工作,我尤其是遇到了麻煩得到鏈接重定向之間非常穩定工作。

我敢肯定其他人一定是遇到了這個問題,在過去,但我似乎無法找到這種情況書面一個很好的例子。處理這個問題的最好方法是什麼?

回答

3

herehere幫助,here ...我終於想通了這一點:

constraints :subdomain => 'blog' do 
    scope '', :subdomain => 'blog' do 
     resources :posts 
    end 
    root :to => 'posts#index' 
end 

這將導致posts_path幫手正確發送旅客的子域。