Присоединение параметра к каждому GET-запросу в Rails - PullRequest
0 голосов
/ 20 декабря 2018

Нужно посмотреть, есть ли элегантное решение для добавления параметра к каждому запросу GET на основе значения сеанса в приложении Rails.(4.2.6 при необходимости)

Пример:

  • У нас есть переменная сеанса session[:test] = 123

  • Пользователь делает запросto example.com/random_path

  • Мы бы хотели, чтобы запрос всегда добавлял параметр "?test=#{session[:test]}"

  • Таким образом, пользователь будет перенаправленto example.com/random_path?test=123

Рад услышать любые идеи по этому поводу - спасибо!

Ответы [ 3 ]

0 голосов
/ 20 декабря 2018

Если вы хотите, чтобы сгенерированные URL-адреса этого пути всегда содержали определенный параметр при их создании, вы можете написать свой собственный url_for или link_to помощник для этого конкретного маршрута или переопределить default_url_options и установитьэтот параметр, если действие или имя контроллера соответствуют некоторому условию:

class ApplicationController < ActionController::Base
  def default_url_options(options = {})
    if controller_name == 'my_controller'
      options[:test] = session[:test]
    end

    options
  end
end
0 голосов
/ 26 декабря 2018

Маршруты могут быть сгенерированы как:

random_path(random, test: session[:test]) 

Он будет перенаправлен на:

example.com/random_path?test=123

, где test = session [: test]

0 голосов
/ 20 декабря 2018

Будет ли redirect_to решением проблемы?См. Код ниже:

redirected_url = "https://foo.com? Test = # {session [: test]}"

redirect_to redirected_url

Надеюсь, это поможет ....

...