#ruby-on-rails #ruby #split
#ruby-on-rails #ruby #разделение
Вопрос:
Я работаю Rails 4.2.2
в своем приложении. На моем веб-сайте есть часть, в которой я хотел бы отображать разный код / элемент для каждого 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
.
Комментарии:
1. Вместо того, чтобы усложнять его, почему бы просто не использовать
rand()
?2. По какой причине вы делаете это без отслеживания?
3. Вы можете использовать его по разным причинам, в одном из случаев я собираюсь использовать его для показа разных текстов (не требует отслеживания) и / или показа разных объявлений.
Ответ №1:
Вы можете добиться этого с помощью простого rand
метода
<% if rand(2).zero? %>
<button>Login</button>
<% else %>
<h1>Welcome to our website</h1>
<% end %>
Редактировать
Если у вас более 2 элементов, тогда лучше использовать оператор hash или case
Создайте вспомогательный метод
def conditional_element(option)
hash = {
0 => "<button>Login</button>",
1 => "<h1>Welcome to our website</h1>",
2 => "Some other element"
}
hash[option]
end
или
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
И используйте его в представлении
<%= conditional_element(rand(3)) %>
ПРИМЕЧАНИЕ: вам необходимо изменить число в rand
соответствии с вашим количеством элементов
Комментарии:
1. Спасибо @Deepak, это работает (вроде). Это меняет их, но не точно для каждого посещения / обновления. Иногда мне нужно обновить / посетить страницу дважды или 3 раза, прежде чем она вернется.
2. да, вы не можете быть уверены, что он будет переключаться точно после каждого посещения как случайный. Но вероятность составляет 50-50
3. Так что, если вас не беспокоит переключатель для каждого посещения, вы можете его использовать
4. Окей, отлично. Спасибо @Deepak И последнее. Как я могу добавить и третий элемент? И это документация, которую я могу прочитать, как она работает?
5. Если у вас более 2 элементов, я скажу go for
hash
илиcase
заявление