在我的rails应用程序中,由于某种原因,我必须将URL重定向到所需的URL。
这就是我的配置设置routes.rb的方式。
map.connect 'sample/:action/:id.:format', :controller => 'test'
Test控制器指标法。Test控制器并搜索displayname方法。显然它不在那里,所以我得到了"undefined“错误消息。
在这里,我希望即使URL是(http://example.com/sample/displayname?id=10),它已经足够Test控制器的索引方法了。我如何在Rails-2应用程序(Rails版本2.3.9)中做到这一点?
发布于 2012-12-31 07:23:10
首先,我不建议这么做。这违背了在rails中如何做事情的惯例,而这往往会导致痛苦。
(至于我推荐的是什么?只需构造不同的urls即可。如果您按照rails轻松的方式做事,那么使用它会很有趣。否则,你的生活将充满痛苦和痛苦。)
但是,如果您真的愿意的话,看起来您无法在rails中执行正则表达式路由。我以为你可以,但我没看到任何迹象表明你可以。但是你能做的是..。
def method_missing
index
end把它放在控制器中,你想要有这种行为。它可以做你想做的事情,但它也可能隐藏其他错误。无论如何,别说我没警告你。这似乎是个坏主意..。
至于重定向,测试控制器中的before_filter将执行此操作。
before_filter :redirect_if_wrong_path
def redirect_if_wrong_path
if request.path =~ /\/sample/
redirect_to request.path.sub('/sample', '/test')
end
endhttps://stackoverflow.com/questions/14098688
复制相似问题