我正在构建一个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"
。
从Rails3.1开始,默认情况下通配符路由将始终与可选格式段匹配。例如,如果您有以下路线:
match '*pages' => 'pages#show'
通过请求"/foo/bar.json"
,您的params[:pages]将等于请求格式为JSON的"foo/bar"
。如果你想恢复旧的3.0.x行为,你可以提供这样的:format => false
:
match '*pages' => 'pages#show', :format => false
如果你想让格式段成为强制性的,所以它不能被省略,你可以提供:format => true
,如下所示:
match '*pages' => 'pages#show', :format => true
您可以在