Ruby on rails 如何为/user/2/files/any/path/to/a/file创建Rails通配符路由?

Ruby on rails 如何为/user/2/files/any/path/to/a/file创建Rails通配符路由?,ruby-on-rails,ruby,ruby-on-rails-3,web-applications,routing,Ruby On Rails,Ruby,Ruby On Rails 3,Web Applications,Routing,我正在构建一个Rails应用程序,它允许用户拥有一个类似个人文件夹的文件夹,在那里他们可以上传文件或创建另一个文件夹 我怎样才能做出一条与之相似的路线 /user/:id/files/:any_path 匹配这样的路线 /user/2/files/some_folder/a_file.doc 您可以尝试匹配如下自定义路线: match '/user/:id/files/*any_path' match '*pages' => 'pages#show', :format => f

我正在构建一个Rails应用程序,它允许用户拥有一个类似个人文件夹的文件夹,在那里他们可以上传文件或创建另一个文件夹

我怎样才能做出一条与之相似的路线

/user/:id/files/:any_path
匹配这样的路线

/user/2/files/some_folder/a_file.doc

您可以尝试匹配如下自定义路线:

match '/user/:id/files/*any_path'
match '*pages' => 'pages#show', :format => false
match '*pages' => 'pages#show', :format => true
此路由将匹配
/user/2/files/3
/user/2/files/long/path/to/3
,将
参数[:任意路径]
设置为
“3”
“long/path/to/3”

从Rails 3.1开始,默认情况下,通配符路由将始终与可选格式段匹配。例如,如果您有此路线:

match '*pages' => 'pages#show'
通过请求
“/foo/bar.json”
,您的参数[:pages]将等于请求格式为json的
“foo/bar”
。如果要恢复旧的3.0.x行为,可以提供如下内容:

match '/user/:id/files/*any_path'
match '*pages' => 'pages#show', :format => false
match '*pages' => 'pages#show', :format => true
如果您希望强制设置格式段,因此不能忽略它,您可以提供如下内容的
:format=>true

match '/user/:id/files/*any_path'
match '*pages' => 'pages#show', :format => false
match '*pages' => 'pages#show', :format => true

您可以在

上找到此信息和更多详细信息,您可以尝试匹配如下自定义路线:

match '/user/:id/files/*any_path'
match '*pages' => 'pages#show', :format => false
match '*pages' => 'pages#show', :format => true
此路由将匹配
/user/2/files/3
/user/2/files/long/path/to/3
,将
参数[:任意路径]
设置为
“3”
“long/path/to/3”

从Rails 3.1开始,默认情况下,通配符路由将始终与可选格式段匹配。例如,如果您有此路线:

match '*pages' => 'pages#show'
通过请求
“/foo/bar.json”
,您的参数[:pages]将等于请求格式为json的
“foo/bar”
。如果要恢复旧的3.0.x行为,可以提供如下内容:

match '/user/:id/files/*any_path'
match '*pages' => 'pages#show', :format => false
match '*pages' => 'pages#show', :format => true
如果您希望强制设置格式段,因此不能忽略它,您可以提供如下内容的
:format=>true

match '/user/:id/files/*any_path'
match '*pages' => 'pages#show', :format => false
match '*pages' => 'pages#show', :format => true
您可以在上找到此信息和更多详细信息