我有许多不同的视图需要共享相同的实验(即页脚和页眉部分需要同时显示'nav_a‘或'nav_b’选项)。
我曾希望简单地使用相同的命名实验就能让它工作,但似乎没有(例如,有时页眉有'a‘,页脚有'b',反之亦然,或者在两个地方都有相同的a)。
我怎样才能最好地做到这一点呢?
作为第二个问题,我的“实验”的一部分是知道在让用户点击视频链接时哪个视图更成功;在我的应用程序中,我将这种点击保存为“访问”模型;visit_controller是否可以知道正在运行的测试-a或b-以便我可以将其保存到我的访问模型中?这样,我就可以得到访问模型中“实验1选项a”与“实验2选项b”的数量,等等。
我很乐意使用像全局变量这样简单的东西来知道要保存哪些;但不确定如何以这种方式在split中启动ab_test。
更新:
以下是当前页面的示例代码:
/layout/header.html.erb,如下所示:
<%= ab_test('test_test', 'This is Header Test A', 'This is Header Test B') %>和/layout/footer.html erb有
<%= ab_test('test_test', 'This is Footer Test A', 'This is Footer Test B') %>但他们并没有始终如一地做出同样的选择。我也不确定如何最好地实现文档中描述的'helper_method‘:https://github.com/andrew/split#views
更新#2
我刚刚尝试将layout/header.html.erb和layout/footer.html.erb中的代码更改为:
<%= render partial: ab_test("test_test", "layouts/test_a", "layouts/test_b") %>当我离开这两个布局,拉入相同的部分(即_test_a.html.erb)时,它们都是同步的,并显示了预期的内容。
但是,当我更改layout/footer.html.erb以呈现部分内容时:
<%= render partial: ab_test("test_test", "layouts/test_footer_a", "layouts/test_footer_b") %>它们不再同步,将随机显示不同的部分--即首先显示A+footer B,然后显示页眉b和页脚b,页眉a+页脚b等等--所有这些都在同一个会话中。
发布于 2014-06-17 13:25:30
我想我自己想出了处理这件事的最佳方法。
在ApplicationController中创建一个helper方法ie (简单地测试它):
helper_method :home_display_test
def home_display_test
@home_display = ab_test("home_display_test", 'original', 'new')
return @home_display
end然后在我的视图中,我可以加载不同的分音,例如:
或
我认为这非常可靠;我甚至可以请求在另一个控制器中使用哪个测试版本来保存点击中的数据……
发布于 2014-07-26 05:24:07
一个AB测试应该有一组备选方案,这些备选方案在配置文件或第一次调用ab_test()时定义
试着这样做:
<head>
<%- if ab_test('layout_test', 'original', 'new') == 'origional' %>
<title>Old Title</title>
<%- else %>
<title>New Title</title>
<%- end %>
</head>
<body>
<%- if ab_test('layout_test', 'original', 'new') == 'origional' %>
<%= render partial: 'layout/original'%>
<%- else %>
<%= render partial: 'layout/new'%>
<%- end %>
</body>应该像护身符一样起作用!
https://stackoverflow.com/questions/24251236
复制相似问题