2016-09-29 12 views
0

我在我的应用程序中运行Rails 4.2.2。有我的网站的一部分,我想显示不同的代码/元素每2用户Ruby on Rails - 每2个用户显示不同的代码(按钮)

我知道我可以通过split gem来实现,但它不是A/B测试,我不想让它变得复杂。

所以基本上它的工作原理是这样的:

访问1: <button>Login</button>

访问2 <h1>Welcome to our website</h1>

访问3: <button>Login</button>

访问4 <h1>Welcome to our website</h1>

这是任何方法可以让我做到这一点不 '拆宝石' 或某种A/B testing gem

+0

的数量,而不是过于复杂它,为什么不使用'rand()'? –

+0

你没有跟踪它的原因是什么? –

+0

您可以将其用于不同的原因,其中一种情况是我将使用它来显示不同的文本(不需要跟踪)和/或显示不同的广告。 – Rubioli

回答

2

您可以用简单的rand方法实现这一

<% if rand(2).zero? %> 
    <button>Login</button> 
<% else %> 
    <h1>Welcome to our website</h1> 
<% end %> 

编辑

如果你有2组以上的元素,然后它能够​​更好地去散或case语句

创建帮手法

def conditional_element(option) 
    hash = { 
    0 => "<button>Login</button>", 
    1 => "<h1>Welcome to our website</h1>", 
    2 => "Some other element" 
    } 
    hash[option] 
end 

OR

def conditional_element(option) 
    case option 
    when 0 
    "<button>Login</button>" 
    when 1 
    "<h1>Welcome to our website</h1>" 
    when 2 
    "Some other element" 
    end 
end 

并以此鉴于

​​

注意:您需要更改rand数量,按您的元素

+0

谢谢@Deepak,它确实有效(有点)。它确实改变了它们,但并不完全适用于每次访问/刷新。有时我需要刷新/访问该页面两次或三次,然后再更换。 – Rubioli

+0

是的,你不能确定每次访问后它会随机切换。但概率是50-50 –

+0

所以如果你不关心每次访问的开关,你可以使用它 –