【问题标题】:Rails route /c/old/?id=x to a redirect to /c/new/xRails 将 /c/old/?id=x 路由到重定向到 /c/new/x
【发布时间】:2017-01-31 22:43:56
【问题描述】:

谁能告诉我如何定义一个重定向

的 Rails 4.2 路由

observer/show_obs?id=x

observer/show_observation/x

【问题讨论】:

    标签: ruby-on-rails-4 routing


    【解决方案1】:

    我从来没有直接使用 Rails 路由,而是通过服务器。我使用的是 nginx 服务器并为路由添加了proxy_pass

    location = /observer/show_obs {
    proxy_http_version 1.1;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Host $host;
    proxy_set_header X-NginX-Proxy true;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_cache_bypass $http_upgrade;
    proxy_pass http://serverName.com/observer/show_observation;
    proxy_redirect off;
    

    }

    【讨论】:

    • 有趣的想法,但对我的情况没有帮助。那么 route 会怎样,它只是重定向到不同的操作(相同的控制器,相同的参数),即 observer/show_obs?id=xobserver/show_observation/?id=x
    • 从控制器操作重定向始终是一种选择,但我认为这不是一个好主意。
    • 如果它“始终是一个选项”,请告诉我该怎么做。
    • 我的意思是,你可以有一个对应于路由的控制器动作:observer/show_obs?id=x,它将请求重定向到由另一个控制器动作处理的路由observer/show_observation/?id=x
    • 感谢您的澄清。但是定义的控制器操作show_obs 正是我想要避免的——我想通过路由来做。
    猜你喜欢
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多