在Rails控制器中,我可以 redirect_to 在每个其他页面加载中的两个单独页面中的一个吗?
可以做这类事情的东西:
class HomePageController < ApplicationController
def index
50% of the page-loads do
redirect_to '/foo'
else
redirect_to '/bar'
end
end
end
这种类型的东西可以在Rails控制器中使用吗?谢谢!
答案 0 :(得分:0)
是的,您可以在Rails控制器中有条件地重定向,因此以下是&#34;真正的&#34;您的伪代码示例:
def index
if rand(2) == 1
redirect_to '/foo'
else
redirect_to '/bar'
end
end
但是,如果您正在寻求进行多变量测试,那么这不是一个完整的解决方案。即使同一个用户两次访问该页面,该页面也可能会发生变化,这可能非常迷惑。您可能希望查看像split这样的宝石,或者至少存储用户在会话中看到的页面(或cookie)。
答案 1 :(得分:0)
我相信你需要在数据库或会话中坚持这种事情,因为控制器完全不了解这类事情。
但您是否希望每个其他请求或每个其他请求都向特定用户提供新页面?如果user A
次访问,user B
次访问,他们是否应该page 1
或user b
page 2
看到def index
# A currently non-existent model that tracks visits
if Visitor.count.even?
render 'page_1'
else
render 'page_2'
end
Visitor.create(<whatever information you want to store>)
end
?这将告诉您是否需要使用会话或数据库。
无论如何,这里有一些你应该做的伪代码(假设每个其他请求都会翻转,无论用户是谁)
onChange