Это можно сделать так. Может потребоваться некоторая настройка и исправление, но вы получите представление
Сделайте перед фильтром для контроллера приложений, вы будете вызывать его для любого действия
def landing_filter
if from_other_site(request.referrer) and !session[:referer].blank?
session[:referer] = request.referrer #you don't want to delete first entrance
end
end
from_other_site должен быть методом, который проверит доменное имя в URL-адресе реферера, если оно совпадает с вашим, то возвращает false
, в противном случае true
в представлении devise / registration / new.erb.html добавить в скрытое поле формы
<%= f.hidden_field :referrer, session[:reserrer] %>
и не забудьте добавить миграцию с новым полем базы данных для пользователя