Ruby on Rails — отображение разного кода (кнопки) для каждого 2 пользователя

#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 заявление