3

で始まるすべての URL に一致させたい/company/ので、次のルートがあります。

match '/*id' => 'high_voltage/pages#show', :constraints => { id: /^company\/.*/ }

しかし、制約は何もしません。URL/abcもこのルートと一致しPagesController、エラーがスローされます。

これはどのように指定すればよいですか?

id最初にパラメータを含める必要があるcompany/ので、単にルートを作成するとは言わないでくださいmatch '/company/*id'idこれにより、コントローラーに .なしのパラメーターが与えられますcompany/

更新:通常のRubyで上記の正規表現を試してみましたが、動作します。また、会社の前に ^ を付けずに試してみました (ただし、会社を最初の単語にする必要があります)。

更新 2 : ワイルドカードに問題があるようですが、ワイルドカード ルートは制約で機能しますか? ルートにワイルドカードがあると、ANY 制約が機能しません。

更新 3 : これは単なるRuby on Rails のバグであることがわかりました。

4

2 に答える 2

2

アップデートで指摘されているように、これは Rails のバグです。

于 2012-10-15T19:12:31.173 に答える
-2

構文エラーのようです。使ってみて:constraints => {:id => /^company/.*/}

編集:ルビーv 1.9.2を想定しました

于 2012-10-11T20:28:46.347 に答える