Rails - добавление параметров запроса к существующему URL - PullRequest
2 голосов
/ 10 мая 2011

У меня есть метод контроллера приложения, называемый redirect back или default, который используется для перенаправления пользователей на страницу, которую они запрашивали после входа в систему

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

Я хотел бы иметь возможность добавлять параметры URL (длянекоторая аналитика отслеживания) до URL, но я не уверен в лучшем способе.Я бы хотел изменить сигнатуру метода на

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

и каким-то образом прикрепить параметры к существующему URL.Есть ли стандартный рубин или ROR способ сделать это?Я, очевидно, мог бы выполнить грубую проверку, чтобы увидеть, есть ли строка запроса как часть URL с регулярным выражением, и вручную построить строку запроса, но я надеялся, что есть более простой стандартный способ сделать это.

Ответы [ 2 ]

0 голосов
/ 10 мая 2011

Стандартный подход

def redirect_to_back_or_default(default = "/")
  back = case request.env["HTTP_REFERER"]
  when request.fullpath
    default
  when nil
    default
  else
    :back
  end
  redirect_to back
end
0 голосов
/ 10 мая 2011

С здесь :

Для передачи параметров с помощью redirect_to Вы просто добавляете их. Нравится ...

 redirect_to :controller => 'another', :action => 'def', :param1 => 'some', :param2 => 'thing', :param => 'else'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...