我正在构建一个Rails应用程序,我需要对同一个应用程序进行三种不同视图的可用性测试。我的想法是根据子域切换默认视图路径。
例如,我希望能够定义类似的路径:
option1.mysite.com => views/option_1
option2.mysite.com => views/option_2
option3.mysite.com => views/option_3
我想保持模型和控制器相同,但根据子域切换视图。什么是最好的方法呢?
答案 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文件。