【问题标题】:Attaching a parameter to each GET Request in Rails在 Rails 中为每个 GET 请求附加一个参数
【发布时间】:2018-12-20 01:42:11
【问题描述】:

看看是否有一个优雅的解决方案可以根据 Rails 应用程序中的会话值向每个 GET 请求添加参数。 (如果需要,4.2.6)

例子:

  • 我们有一个会话变量session[:test] = 123

  • 用户向 example.com/random_path 发出请求

  • 我们希望请求始终附加参数"?test=#{session[:test]}"

  • 因此用户将被路由到 example.com/random_path?test=123

很想听听这方面的任何想法 - 谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    如果您希望生成的指向该路径的 URL 在生成时始终包含某个参数,您可以为该特定路由编写自己的 url_forlink_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
    

    【讨论】:

      【解决方案2】:

      redirect_to 会是一个解决方案吗?请看下面的代码:

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

      redirect_to 重定向_url

      希望对你有帮助....

      【讨论】:

        【解决方案3】:

        路由可以生成为:

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

        它将重定向到:

        example.com/random_path?test=123
        

        其中 test = session[:test]

        【讨论】:

          猜你喜欢
          • 2015-07-16
          • 1970-01-01
          • 2011-04-08
          • 1970-01-01
          • 1970-01-01
          • 2020-07-15
          • 1970-01-01
          • 2019-11-29
          • 1970-01-01
          相关资源
          最近更新 更多