0

ルートファイルを編集して、アンダースコア文字「_」を含むユーザー名のルーティングを許可するにはどうすればよいか疑問に思っています。関連するコードは次のとおりです。

controller :users do
 match ':id' => :show, :via => :get, :constraints => { :id => /[A-Za-z0-9\-\+]+/ }
end
4

3 に答える 3

2

構造A-Za-z0-9\_は と同じ\wです。したがって、短いバージョンを使用できます。

/[\w\-\+]+/
于 2012-04-21T12:57:11.317 に答える
2

正規表現を更新して、次のように追加_します。

/[A-Za-z0-9\-\_\+]+/

完成したものは次のmatchようになります。

match ':id' => :show, :via => :get, :constraints => { :id => /[A-Za-z0-9\-\_\+]+/ }
于 2012-04-20T00:49:48.770 に答える
0

この正規表現パターンは、このテスト文字列を無視していないと思います:

XXXX XXXXX

文字列の間にスペースがあります。この正規表現パターンを更新すると、このテスト文字列は無視されます。

controller :users do
  match ':id' => :show, :via => :get, :constraints => { :id => /^[\w\-\+]+$/ }
end
于 2012-04-20T04:13:44.727 に答える