2013-02-15 2 views
0

Для целей веб-отслеживания я хотел бы сохранить HTTP-реферер при использовании redirect_to в Rails. Это необходимо для перенаправления на соответствующую языковую версию.Сохранение реферера на redirect_to в Ruby on Rails

Пример кода:

redirect_to "/#{Option[:locales].first}", :status => 301 

Как я могу сохранить ссылающийся без использования параметров запроса?

ответ

2

Существует несколько способов подробно описанных в this question.

Мой предпочтительный способ сделать это - установить перед_фильтром для store_referrer в контроллере, который вызывает метод, подобный этому, в моем application_controller. Затем используйте методы redirect_back_or_default в своих действиях для обработки перенаправления.

def store_referrer 
    session[:return_to] = request.request_uri 
end 

def redirect_back_or_default(default) 
    redirect_to(session[:return_to] || default) 
    session[:return_to] = nil 
end 

Вы также можете посмотреть на redirect_to :back метод, который доступен в Rails или если вы используете Authlogic/Завещание, они оба приходят с подобными помощникам делать то же самое.

Посмотрите на связанную нить, this предложение от troex является хорошим.

+0

Спасибо, я попробую это так. – Tim

Смежные вопросы