首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 2中的URL重定向

Rails 2中的URL重定向
EN

Stack Overflow用户
提问于 2012-12-31 07:16:10
回答 1查看 539关注 0票数 0

在我的rails应用程序中,由于某种原因,我必须将URL重定向到所需的URL。

这就是我的配置设置routes.rb的方式。

map.connect 'sample/:action/:id.:format', :controller => 'test'

  1. 当url是http://example.com/sample时,它可以很好地重定向。采用Test控制器指标法。
  2. 当url是http://example.com/sample/displayname?id=10时,它会转到Test控制器并搜索displayname方法。显然它不在那里,所以我得到了"undefined“错误消息。 在这里,我希望即使URL是(http://example.com/sample/displayname?id=10),它已经足够Test控制器的索引方法了。
  3. 另外,在地址栏,我想要URL掩蔽。如果我点击http://example.com/sample/,它应该重定向&在地址栏http://example.com/test中。

我如何在Rails-2应用程序(Rails版本2.3.9)中做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-31 07:23:10

首先,我不建议这么做。这违背了在rails中如何做事情的惯例,而这往往会导致痛苦。

(至于我推荐的是什么?只需构造不同的urls即可。如果您按照rails轻松的方式做事,那么使用它会很有趣。否则,你的生活将充满痛苦和痛苦。)

但是,如果您真的愿意的话,看起来您无法在rails中执行正则表达式路由。我以为你可以,但我没看到任何迹象表明你可以。但是你能做的是..。

代码语言:javascript
复制
def method_missing
  index
end

把它放在控制器中,你想要有这种行为。它可以做你想做的事情,但它也可能隐藏其他错误。无论如何,别说我没警告你。这似乎是个坏主意..。

至于重定向,测试控制器中的before_filter将执行此操作。

代码语言:javascript
复制
before_filter :redirect_if_wrong_path

def redirect_if_wrong_path
  if request.path =~ /\/sample/
    redirect_to request.path.sub('/sample', '/test')
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14098688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档