我在控制器中捕获了静态页面的这两个路由。
match "/pages/:page" => "pages#aboutus"
match "/pages/:page" => "pages#team"
我原以为它可以通过匹配"aboutus"或"team"来工作,但路由似乎只能通过查找上面的第一个条目来工作。
我的控制器看起来像这样:
def aboutus
end
def team
end
你知道我怎样才能让路线到达正确的控制器入口吗?
谢谢!
它不能那样工作。
您所写的内容意味着请求被调度到pages
控制器的aboutus
操作,其中{ :page }
在params中。你的:page
应该是什么?
此外,阅读路由指南
如果您希望/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"
然而,如果你正在寻找处理静态页面的全局解决方案,我推荐使用thinkbot:的高压
https://github.com/thoughtbot/high_voltage
对不起,这不起作用。你正试图使用同一个url去两个不同的地方。第一个要匹配的参数是url在浏览器中的外观,并且您为两个路由指定了完全相同的参数。
你需要以某种方式区分url。
你真的想这么做吗:
match "/pages/aboutus" => "pages#aboutus"
match "/pages/team" => "pages#team"