使用Split进行Rails A / B测试,共享相同实验的多个视图(辅助方法?)

我有许多不同的视图需要共享相同的实验(即页脚和标题部分需要同时显示’nav_a’或’nav_b’选项)。

我原本希望简单地使用相同的命名实验可以使这个工作但似乎没有(即有时标题有’a’而页脚有’b’,反之亦然或两者都相同)。

我怎么能最好地实现这个目标?

作为第二个问题,我的“实验”的一部分是知道哪个视图在让用户点击video链接方面更成功; 在我的应用程序中,我将这些点击保存为“访问”模型; 无论如何,visit_controller可以知道哪个测试 – a或b – 正在运行,所以我可以将它保存到我的访问模型中? 这样我可以计算哪个访问模型具有’实验1选项’与’实验2选项b’等。

我会对一个简单的全局变量感到高兴,知道要保存哪个; 不确定如何以这种方式启动分割中的ab_test。

更新:

这是当前页面的示例代码:

/layout/header.html.erb的行如下:

 

和/layout/footer.html erb有

  

但他们并没有始终如一地选择相同的选择。 还不确定如何最好地实现’helper_method’,如文档中所述: https : //github.com/andrew/split#views

更新#2

我只是尝试将layouts / header.html.erb和layouts / footer.html.erb中的代码更改为:

  

当我离开这两个其他布局拉入SAME部分(即_test_a.html.erb)时,它们都同步并显示预期的内容。

但是,当我更改布局/ footer.html.erb以呈现此部分时:

  

它们不再是同步并且会随机显示不同的部分 – 即第一个A +页脚B,然后是页眉b和页脚b,标题a +页脚b等 – 所有这些都在同一个会话中。

我想我弄清楚自己如何最好地处理这个问题。

在ApplicationController中创建一个帮助器方法即(使这很简单,以测试它):

 helper_method :home_display_test def home_display_test @home_display = ab_test("home_display_test", 'original', 'new') return @home_display end 

然后在我的视图中,我可以加载不同的部分,例如:

要么

认为这非常有效; 我甚至可以在另一个控制器中请求哪个测试版本来保存点击中的数据…

一个AB测试应该有一组备选方案,这些方案在配置文件中或在第一次调用ab_test()

尝试这样做:

  <%- if ab_test('layout_test', 'original', 'new') == 'origional' %> Old Title <%- else %> New Title <%- end %>   <%- if ab_test('layout_test', 'original', 'new') == 'origional' %> <%= render partial: 'layout/original'%> <%- else %> <%= render partial: 'layout/new'%> <%- end %>  

应该像魅力一样工作!

Interesting Posts