2013-04-11 50 views
1

我有一個特定的情況如下。Rails根據域名呈現靜態頁面

我有一個ROR應用程序,它將使用相同的部署在多個域下運行。所以我將不得不根據域名提供一些靜態資產(圖像,html文件)。任何人都可以請建議什麼是這樣做的理想方式?

在我的應用程序控制器,我可以找出域名

def current_domain 
    @current_domain ||= Domain.find_by_domain(request.host.gsub(/^www\./, '')) 
end 

,但我可以用這個幫手我的控制器內服務於公共目錄靜態文件?此外,該域的這些域名和靜態頁面的創建由中央管理員處理,並且可以在任何時間點動態完成。我可能必須根據域名製作不同的目錄並將靜態資產存儲在其中。但是,當我對這個特定領域的請求出現時,我該如何處理這個問題呢?

任何幫助如何解決這個問題與Rails將不勝感激。

回答

0

我建議每個域的應用佈局,並使用動態佈局在控制器中選擇正確的佈局。

class ProductsController < ApplicationController 
    layout :products_layout 

    def show 
    @product = Product.find(params[:id]) 
    end 

    private 
    def products_layout 
     @current_domain.special? ? "special" : "products" 
    end 

end