2013-04-11 21 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