私は、ユーザーがファイルをアップロードしたり、別のフォルダーを作成したりできる個人用フォルダーのようなものを使用できるRailsアプリケーションを構築しています。
どうすれば似たようなルートを作ることができますか
/user/:id/files/:any_path
このようなルートに一致します
/user/2/files/some_folder/a_file.doc
私は、ユーザーがファイルをアップロードしたり、別のフォルダーを作成したりできる個人用フォルダーのようなものを使用できるRailsアプリケーションを構築しています。
どうすれば似たようなルートを作ることができますか
/user/:id/files/:any_path
このようなルートに一致します
/user/2/files/some_folder/a_file.doc
次のようなカスタムルートを一致させることができます。
match '/user/:id/files/*any_path'
このルートは、またはに一致し/user/2/files/3
、または/user/2/files/long/path/to/3
に設定params[:any_path]
されます。"3"
"long/path/to/3"
Rails 3.1以降、ワイルドカードルートはデフォルトで常にオプションのフォーマットセグメントと一致します。たとえば、このルートがある場合:
match '*pages' => 'pages#show'
をリクエスト"/foo/bar.json"
すると、params [:pages]は"foo/bar"
JSONのリクエスト形式と同じになります。古い3.0.xの動作を元に戻したい場合は、次の:format => false
ように指定できます。
match '*pages' => 'pages#show', :format => false
フォーマットセグメントを必須にしたいので、省略できない場合は、次のように指定できます:format => true
。
match '*pages' => 'pages#show', :format => true
この情報と詳細については、外部からのRailsルーティングで見つけることができます。