rails3中的匹配路线只适用于第一条路线
问题描述:
我有这两条路线用于我在控制器中捕获的静态页面。rails3中的匹配路线只适用于第一条路线
match "/pages/:page" => "pages#aboutus"
match "/pages/:page" => "pages#team"
我认为,这将通过匹配的“关于我们”或“团队”的工作,但路由似乎只能通过寻找上述的第一项合作。
我的控制器看起来是这样的:
def aboutus
end
def team
end
任何想法,我怎样才能使路由到正确的控制器项?
谢谢!
答
它不能正常工作像那样。
你写的意思是请求被分派到pages
控制器aboutus
行动中PARAMS { :page }
。什么应该是你的:page
?
此外,阅读the routing guide
如果你想/pages/aboutus
重定向到pages#aboutus
和/pages/team/
到pages#team
做到这一点:
match "/pages/aboutus" => "pages#aboutus"
match "/pages/team" => "pages#team"
答
匹配不符合名称/值对中的名称。你可以做这样的事情,而不是:
match "/pages/about-us" => "pages#aboutus"
match "/pages/team" => "pages#team"
如果您正在寻找全球性解决方案来处理静态页面,不过,我建议由thoughtbot高压:
答
这样可不行,对不起。您正尝试使用相同的网址去两个不同的地方。要匹配的第一个参数是网址在浏览器中的显示方式,并且您对两条路线给出了完全相同的参数。
你需要以某种方式区分URL。
你实际上是试图做到这一点:
match "/pages/aboutus" => "pages#aboutus"
match "/pages/team" => "pages#team"
是完全成功了!谢谢! – GeekedOut 2011-05-25 17:55:16