2011-09-20 26 views
1

我有一個網址,如「http://domain.com/1and2」我希望建立在配置這樣的/ routes.rb中:Rails的路線匹配開始以數字字符

匹配「1and2 「=> 」頭版#oneandtwo「

(具有在適當位置的控制器和視圖)。

運行「耙路線」輸出「無效的路由名稱:'1and2」。當您使用數字字符開始匹配時,顯然會觸發此錯誤。

有一種解決方法,還是我做錯了?

+0

什麼是 '它不是猶太' 是指我加入:as => current_year到路由糾正呢?你在使用它的過程中遇到錯誤,或者你想知道使用這樣的路線是否是一種好的風格? – mliebelt

+0

是啊,這是有點不清楚 - 我的意思是說'耙路線'抱怨和輸出'無效的路線名稱:'1and2''(我將離開原來的帖子未經編輯,所以你的評論仍然有意義) – andkrup

+0

更新你的問題,以便其他人能夠得到更好的開始。只需在您的評論中註明您已更新您的問題。 – mliebelt

回答

3
match '/:id' => "frontpage#oneandtwo", :constraints => {:id => /1and2/} 
+0

THX!紅寶石絕對是浩瀚無限的:) – andkrup

1

問題的根源在於Ruby中的方法不能以數字開頭。由於Rails路由會爲每個路由生成一個訪問器方法,因此會出現錯誤。

您可以通過發行通過與:as參數不同的命名你的路線通過。

我有,我想從一個URI/2012重定向的問題 - 這導致錯誤。

match "/#{Time.now.year}" => redirect("..."), :as => :current_year

更多信息:

https://github.com/rails/rails/issues/3224

相關問題