Rails基于域名呈现静态页面

时间:2013-04-11 11:43:11

标签: ruby ruby-on-rails-3

我有一个特定的案例场景如下。

我有一个ROR应用程序,它将使用相同的部署在多个域下运行。所以我将根据域名提供一些静态资产(图像,html文件)。请问有什么理想的方法吗?

在我的应用程序控制器中,我可以找到域名

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

但是我可以在我的控制器中使用这个助手来提供公共目录中的静态文件吗?此域的这些域名和静态页面的创建由中央管理员处理,并且可以在任何时间点动态完成。我可能必须根据域名创建不同的目录并将静态资产存储在其中。但是,当我对特定域的请求进入时,如何呈现此问题是我手头的问题。

有关如何使用Rails解决此问题的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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