在 Rails 中为每个 GET 请求附加一个参数
Attaching a parameter to each GET Request in Rails
看看是否有一个优雅的解决方案,可以根据 Rails 应用程序中的会话值向每个 GET 请求添加参数。 (4.2.6 如果需要)
示例:
我们有一个会话变量session[:test] = 123
用户请求示例。com/random_path
我们希望请求始终附加参数 "?test=#{session[:test]}"
因此用户将被路由到示例。com/random_path?test=123
很想听听对此的任何想法 - 谢谢!
redirect_to 会是一个解决方案吗?请看下面的代码:
redirected_url = "https://foo.com?test=#{session[:test]}"
redirect_to redirected_url
希望对您有所帮助....
如果您希望生成的指向该路径的 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
路由可以生成为:
random_path(random, test: session[:test])
它将重定向到:
example.com/random_path?test=123
其中测试 = 会话[:测试]
看看是否有一个优雅的解决方案,可以根据 Rails 应用程序中的会话值向每个 GET 请求添加参数。 (4.2.6 如果需要)
示例:
我们有一个会话变量
session[:test] = 123
用户请求示例。com/random_path
我们希望请求始终附加参数
"?test=#{session[:test]}"
因此用户将被路由到示例。com/random_path?test=123
很想听听对此的任何想法 - 谢谢!
redirect_to 会是一个解决方案吗?请看下面的代码:
redirected_url = "https://foo.com?test=#{session[:test]}"
redirect_to redirected_url
希望对您有所帮助....
如果您希望生成的指向该路径的 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
路由可以生成为:
random_path(random, test: session[:test])
它将重定向到:
example.com/random_path?test=123
其中测试 = 会话[:测试]