で始まるすべての 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 のバグであることがわかりました。