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" 
+0

是完全成功了!谢谢! – GeekedOut 2011-05-25 17:55:16

匹配不符合名称/值对中的名称。你可以做这样的事情,而不是:

match "/pages/about-us" => "pages#aboutus" 
match "/pages/team" => "pages#team" 

如果您正在寻找全球性解决方案来处理静态页面,不过,我建议由thoughtbot高压:

https://github.com/thoughtbot/high_voltage

这样可不行,对不起。您正尝试使用相同的网址去两个不同的地方。要匹配的第一个参数是网址在浏览器中的显示方式,并且您对两条路线给出了完全相同的参数。

你需要以某种方式区分URL。

你实际上是试图做到这一点:

match "/pages/aboutus" => "pages#aboutus" 
match "/pages/team" => "pages#team"