現在、リクエストURLの一部を相対パスとして解釈するような作業をしています(これはセキュリティ上のリスクがある可能性があります)。リクエストURLの一部をパラメータとして解釈する
これは、パラメータの一部が/path/to/something
だろう
/page/path/to/something
ようになります。
通常のルーティングでこれを行うことはできますか?これを処理するにはレールメタルのようなものを使用する必要がありますか?
現在、リクエストURLの一部を相対パスとして解釈するような作業をしています(これはセキュリティ上のリスクがある可能性があります)。リクエストURLの一部をパラメータとして解釈する
これは、パラメータの一部が/path/to/something
だろう
/page/path/to/something
ようになります。
通常のルーティングでこれを行うことはできますか?これを処理するにはレールメタルのようなものを使用する必要がありますか?
routing constraintを使用すると、ルートセグメントにスラッシュを付けることができます。簡単に言えば(おおよそ):DEVEニュートンの答えに加え
match "page/:fqp" => "what#ever", :constraints => { :fqp => /[a-zA-Z0-9\/]*/ }
は、また、フォーム
get "/page/*path", => "page#show"
で、ルートグロブがあるこれはpage
一部と一致し、params[:path]
として経路内の任意の追加コンテンツを置きます詳細なコントローラーアクションで
私に正しい方向を指摘してくれてありがとう、しかし、そこにもルートグロビングがあります、私は細部への答えを投稿します。 – Femaref
@Femarefはい、ありますが、IMO制約はよりクリーンで予測可能なので、私はそれを含めませんでした。 –
一般的なケースで私があなたに同意するので、私はあなたの答えを受け入れるでしょう。 – Femaref