2011-05-25 110 views
1

我有這兩條路線用於我在控制器中捕獲的靜態頁面。rails3中的匹配路線只適用於第一條路線

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

我認爲,這將通過匹配的「關於我們」或「團隊」的工作,但路由似乎只能通過尋找上述的第一項合作。

我的控制器看起來是這樣的:

def aboutus 
    end 

    def team 
    end 

任何想法,我怎樣才能使路由到正確的控制器項?

謝謝!

回答

5

它不能正常工作像那樣。

你寫的意思是請求被分派到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

2

匹配不符合名稱/值對中的名稱。你可以做這樣的事情,而不是:

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

如果您正在尋找全球性解決方案來處理靜態頁面,不過,我建議由thoughtbot高壓:

https://github.com/thoughtbot/high_voltage

2

這樣可不行,對不起。您正嘗試使用相同的網址去兩個不同的地方。要匹配的第一個參數是網址在瀏覽器中的顯示方式,並且您對兩條路線給出了完全相同的參數。

你需要以某種方式區分URL。

你實際上是試圖做到這一點:

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