2011-09-06 74 views
0

我在將rails 2的路徑轉換爲新的rails 3的過程中遇到了一些麻煩。將Rails 2轉換爲Rails 3

map.connect ':departments/:show/:id', :id => /\w+(,\w+)*/ 

任何幫助,將不勝感激。

+0

我的Rails 2很生鏽,請您簡單介紹一下它的功能。 – Dex

+0

@Dex:請參閱http://edgeguides.rubyonrails.org/routing.html#segment-constraints – Arsen7

回答

0

首先,你應該告訴我們你有什麼問題。任何錯誤消息?

以下行應該在你的情況下工作得很好:

match ":departments/:show/:id" => "departments#show", :id => /\w+(,\w+)*/ 

我懷疑是由亞當Eberlin所示的線(給予好評去那裏!)會更好,因爲我有點不確定你是否真的需要參數'部門'和'顯示'(你把冒號放在他們的前面)。

您的原始路線缺少所需的參數:控制器動作。我懷疑你的路線即使在Rails 2中也沒有工作,或者你有一些指定的「默認值」,你剛剛沒有向我們顯示。

限制的格式並沒有改變,但如果你想盡可能具體,你可以使用:約束上參數:

match ":departments/:show/:id" => "departments#show", 
    :constraints => {:id => /\w+(,\w+)*/} 

此外,您可能會看到指南:"Rails Routing from the Outside In"

1

除非:部門:表演是參數的名字,我相信你的意思是「部門/顯示/:身份證」

如果是這樣的話,試試這個。

match "departments/show/:id" => "departments#show" 

在正則表達式上,我從來沒有做過這樣的事情,但我相信它是相似的。

+0

感謝您的迴應,這裏棘手的部分是REGEX位,不太清楚如何處理。否則,轉換將很容易,如餡餅:) – Bnjmn

相關問題