Rails中不同子域的不同视图

时间:2010-11-16 00:35:28

标签: ruby-on-rails views controllers

我正在构建一个Rails应用程序,我需要对同一个应用程序进行三种不同视图的可用性测试。我的想法是根据子域切换默认视图路径。

例如,我希望能够定义类似的路径:

option1.mysite.com => views/option_1
option2.mysite.com => views/option_2
option3.mysite.com => views/option_3

我想保持模型和控制器相同,但根据子域切换视图。什么是最好的方法呢?

1 个答案:

答案 0 :(得分:1)

我们这样做:

session[:site] = case request.subdomains.last 
        when "a" then "a"
        when "b" then "b"
        when "c" then "c"
end

这是我们的应用程序控制器中set_site方法的一部分。每个请求都会检查是否设置了session[:site];如果没有,则调用set_site来设置它。

在您的情况下,现在您只需要在视图中引入逻辑,根据session[:site]的值来呈现不同的内容,但如果您的实际视图HTML相同且主要区别在于CSS。然后根据session[:site]的值加载不同的CSS文件。