0

ユーザーが現在選択しているカテゴリの名前を取得するために、リクエスト URL で stringscanner を使用していますが、スペースや特殊文字の処理に苦労しています。

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

URL の例とその後の結果

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"] ["dog.com"] と ["dog cat"] を取得しようとしていますが、現在行き詰まっています。何か案は?

注: 複数のスペースがあると問題になる可能性があるため、カテゴリからスペースを削除してダッシュに置き換えることを検討してください。

4

2 に答える 2

3

これは Rails です。使用していない理由はありますparams[:category]か?

于 2012-06-30T08:00:45.557 に答える
2

パラメータを抽出しようとしている場合は、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
于 2012-06-30T07:27:16.417 に答える