Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rails路由/c/old/?id=x到重定向到/c/new/x_Ruby On Rails 4_Routing - Fatal编程技术网

Ruby on rails 4 Rails路由/c/old/?id=x到重定向到/c/new/x

Ruby on rails 4 Rails路由/c/old/?id=x到重定向到/c/new/x,ruby-on-rails-4,routing,Ruby On Rails 4,Routing,有人能告诉我如何定义一个Rails 4.2路由,它可以重定向 observer/show\u obs?id=xto observer/show\u observation/x我从未直接使用rails路由,而是通过服务器完成。我正在使用nginx服务器,并为路由添加了proxy\u pass location = /observer/show_obs { proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_s

有人能告诉我如何定义一个Rails 4.2路由,它可以重定向

observer/show\u obs?id=x
to


observer/show\u observation/x

我从未直接使用rails路由,而是通过服务器完成。我正在使用nginx服务器,并为路由添加了
proxy\u 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;

}

这个想法很有趣,但对我的情况没有帮助。那么简单地重定向到不同操作(相同控制器,相同参数)的路由呢,即
observer/show\u obs?id=x
observer/show\u observation/?id=x
从控制器操作重定向始终是一个选项,但我认为这不是一个好主意。如果它“始终是一个选项”,请告诉我怎么做。我的意思是,您可以有一个与路由相对应的控制器操作:
observer/show\u obs?id=x
,该操作将请求重定向到路由
observer/show\u observation/?id=x
,由另一个控制器操作处理。感谢您的澄清。但是定义的控制器动作
show_obs
正是我试图避免的——我希望通过路由来实现。