2012-07-10 58 views
1

當我輸入名稱時,我的程序顯示有關數據庫中項目的信息。 它適用於ID和大多數名稱,除非名稱包含點。如何忽略網址中的點號

match 'show/:name' => 'show#displayinfo' 

在控制器中,我有:

@details = Description.where(:name => params[:name]).first 

隨着上如果名字沒有被發現

當我像../show/Ruby輸入的東西做什麼條件 - 它工作正常 但../show/a.b顯示器一個空的頁面,並且在開發日誌中除此之外沒有錯誤:

Processing by ShowController#displayinfo as 
Parameters: {"name"=>"a"} 

如果我輸入../show/a這個按預期工作,沒有錯誤,沒有空視圖。

任何方式來解決這個問題,除了重命名數據庫中的項目?

回答

2

manual

match 'show/:name' => 'show#displayinfo', :format => false 

應該這樣做。

1

點後面的所有內容通常被認爲是請求的格式。即HTML或JSON或任何mimetype在您的Rails應用程序中配置。

這裏是你如何能超越這種默認行爲的一個例子:http://zargony.com/2009/05/05/routing-parameters-with-a-dot

的基本技巧是使用正則表達式的貪婪來解析paramters。