ruby on rails-rails3中的匹配路线只适用于第一条路线



我在控制器中捕获了静态页面的这两个路由。

  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"

最新更新