に一致しない:Railsのルートの制約 - Unicodeの正規表現は、だから私は、次のようなパスに一致する制約のルートを持っている
/jobs-in-London
get ':id' => 'search#show', :constraints => { :id => /jobs-in-[A-Z].*/ }
これは素晴らしい作品が、私は他の文字セットで書かれた場所に一致させる必要があります、日本人など。有効なURLはユーザーがアップロードした場所の一覧から生成されるため、「jobs-in」は英語で残っています。
これは私が/jobs-in-東京
と一致することを期待していることを意味します。それはコントローラにヒットした後東京で検索します。ジオロケーションは後で実行され、翻訳なしで動作します。私はちょうど右のコントローラに要求を取得する必要があります。
私はこの試みている:私はRubularを使用して構築し、私はこれが大文字の制約を持っていない承知していますが、それはいくつかのように重要ではありません正しくas seen here.に一致するように見える
get ':id' => 'search#show', :constraints => { :id => /jobs-in-\p{L}*/ }
とにかく本当の大文字を持っているようには見えません。
しかし、ルートはそれにマッチしません。代わりに、ワイルドカードキャッチにそのルートを吐き出してください。
私は、Railsがルートの正規表現をどのように実装しているのか悪化していますか?ユニコードセレクタはサポートしていませんか?私は、このことはできません
:これは望ましくない/jobs-in-$£@
に一致するよう
get ':id' => 'search#show', :constraints => { :id => /jobs-in-.*/ }
を、私は「手紙」の文字にそれを制限したいです。
てみてください: 'ジョブ・インを\ p {Lu} \ p {M} * +。* '(' \ p {Lu} 'は大文字のUnicode文字と一致します)。 '[A-Z]。*' - >は、大文字のASCII文字の後に改行以外の0+の文字が続くものと一致します。したがって、 '\ p {Lu} \ p {M} * +'は1文字(あらかじめ作成されたもの)に続いて同じ '。*'とマッチします。大文字でも大文字でもない場合は 'jobs-in \ p {L} \ p {M} * +。*'だけです。 –
この場合も、これはrubularでマッチしますが、ルートに追加すると実際には一致しません。 – MWvolcanic