Heroku、Rails和Devise:在两个应用程序之间拆分流量



我在 myapp.com 和 beta.myapp.com 上设置了两个应用程序。两者都配置了自己的存储库和 Heroku 应用程序,但共享数据库和会话数据。

我的目标是在单独的应用程序上测试关键指标。 目前,我的设置方式是在 application_controller.rb 中使用"之前"过滤器。如果user.id是偶数,则会将用户发送到 beta.myapp.com。

但此方法要求用户登录。如何为所有用户实现此目的,即使他们已注销?

基本上,我想将 50% 的流量随机化到 beta 版本,然后保留它,以便用户在返回站点时会看到相同的版本。

将您的用户 ID 检查替换为 rand(2) 。这将是50%的机会。

要保留此结果,您可以将其保存到 cookie 中,在实际获取随机数之前,请检查 cookie 值是否存在:

   if cookies[:beta] == "true"
     # do your redirect
   else
     rand(2) == 1 ? cookies[:beta] = "true" : cookies[:beta] = "false"
     # do your redirect 
   end

或者,向User表添加一个额外的字段来存储结果,并检查该字段。

您在这里所做的是A/B测试的一个粗略示例。如果您想进一步推动它,您可能需要研究诸如拆分或优化之类的内容。

最新更新