重定向HTTP请求以避免控制器动作问题

问题描述

| 我正在使用Ruby on Rails3。在我的项目中,我有很多类,其中一些类在
routes.rb
文件中声明,如下所示:
#routers.rb
resources :users

namespace \"users\" do
  resources :profiles
  ...
end
通过上面的代码,我可以访问以下URL:
<my_web_site>/users/1
<my_web_site>/users/1/edit
...
# and also
<my_web_site>/users/profiles/1
<my_web_site>/users/profiles/1/edit
...
我想做的是将一些URL请求重定向到其他URL,但是如果我在
routes.rb
文件中重定向了所有这些请求,则某些控制器操作将无法正常工作,因为这些请求也被重定向了(GET,POST,...)。 我该如何解决这个问题? P.S .:我知道(也许)我的路由器陈述有误,但此刻我也在寻找一种简单的解决方案。但是,欢迎您提出有关此问题的建议。     

解决方法

好的,看起来您想设置一个重定向,该重定向仅适用于给定路径和一个HTTP动词。这似乎是您要寻找的:
#routers.rb
resources :users

match \"/users/profile/:id\" => redirect(\"/profiles/%{id}\"),:via => :get

namespace \"users\" do
  resources :profiles
  ...
end
基于此路由,每一个指向“ 6”的“ 5”请求都将被重定向到“ 7”,而任何“ 8”,“ 9”或“ 10”请求均不会受到重定向。 仅当请求方法对给定值进行运算时,ѭ11参数将执行重定向。它还接受动词数组,因此,例如,您可以重定向
:via => [:post,:put]
如果您添加有关所需的特定重定向的更多详细信息,我们可以创建一个更好的示例。     ,查看这篇精彩的文章,它将对您有所帮助: 路由 您可以在“ 0”中定义需要重定向到的网址。 例如:
match \'some_url/:id\' => redirect_to(\'/path_to_redirect\')
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...