我正在构建一个Rails应用程序,让用户可以像个人文件夹一样上传文件或制作其他文件夹。
我怎样才能制作一条与
相似的路线/user/:id/files/:any_path
并匹配此类路线
/user/2/files/some_folder/a_file.doc
答案 0 :(得分:5)
您可以尝试匹配这样的自定义路线:
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"
,您的参数[:pages]将等于"foo/bar"
,请求格式为JSON。如果您想要恢复旧的3.0.x行为,可以像这样提供:format => false
:
match '*pages' => 'pages#show', :format => false
如果您想使格式段成为必填项,因此无法省略,您可以像这样提供:format => true
:
match '*pages' => 'pages#show', :format => true
上找到此信息和更多详细信息