2012-06-30 27 views
0

我在我的請求URL上使用stringscanner以獲取用戶當前選擇的類別的名稱,但是我一直在處理空格和特殊字符時遇到困難。其次結果如何使用空格和特殊字符掃描特定字符串的網址?

http://localhost:3000/search?category=dog&search=&utf8=%E2%9C%93 => ["dog"] 
http://localhost:3000/search?category=dog.com&search=&utf8=%E2%9C%93 => ["dog"] 
http://localhost:3000/search?category=dog+cat&search=&utf8=%E2%9C%93 => ["dog"] 

我試圖讓[ 「狗」] [ 「dog.com」]和[ 「狗貓」]

request.url.scan(/\?category=\w+/).to_s.gsub('?category=', '') 

URL的例子,但我目前卡住。有任何想法嗎?

注意:考慮從類別中刪除空格並用短劃線替換它們,因爲多個空格可能有問題,但是如果可以創建一個函數來統一它們,那就太棒了。

回答

3

這是Rails的,有沒有你不只是使用params[:category]理由嗎?

+1

準確地說,我第二個這個。 – ringe

+0

哇我現在感覺真的很笨,很好,謝謝! – ahuang7

+0

不客氣:)如果您是Rails的新手,絕對要通過教程,書籍或在線,和/或閱讀[Rails Guides](http://guides.rubyonrails.org/)我強烈的建議。 – smathy

2

如果你正在試圖提取PARAMS那麼你可以使用parse_query

uri = "http://localhost:3000/search?category=dog+cat&search=&utf8=%E2%9C%93" 
result = Rack::Utils.parse_query(URI(uri).query) #=> {"category"=>"dog cat", "search"=>"", "utf8"=>"\xE2\x9C\x93"} 
result["category"] #=> dog cat 
相關問題