问题描述
|
我在控制器中捕获了静态页面的两条路由。
match \"/pages/:page\" => \"pages#aboutus\"
match \"/pages/:page\" => \"pages#team\"
我认为可以通过匹配\“ aboutus \”或\“ team \”来工作,但是路由似乎只能通过查找上面的第一项来工作。
我的控制器如下所示:
def aboutus
end
def team
end
知道如何使路线进入正确的控制器入口吗?
谢谢!
解决方法
它不能那样工作。
您所写的内容意味着该请求被分派给
pages
控制器的aboutus
动作,参数中的ѭ4。你的ѭ5应该是什么?
另外,请阅读路由指南
如果您希望/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在浏览器中的外观,并且您已经为这两个路由指定了完全相同的一个。
您需要以某种方式区分网址。
您是否真的要这样做:
match \"/pages/aboutus\" => \"pages#aboutus\"
match \"/pages/team\" => \"pages#team\"