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