Ruby on rails 3 Rails 3与令牌的路由匹配
我正在尝试设置一个重定向,以保持请求的格式。但是,在某些情况下,没有指定格式,我也需要对此进行说明 我认为格式是路径的一部分,所以起初我是这样设置的Ruby on rails 3 Rails 3与令牌的路由匹配,ruby-on-rails-3,routes,Ruby On Rails 3,Routes,我正在尝试设置一个重定向,以保持请求的格式。但是,在某些情况下,没有指定格式,我也需要对此进行说明 我认为格式是路径的一部分,所以起初我是这样设置的 match 'v:api/*path', :to => redirect("/%{path}") 但是,格式不是请求的一部分。因此,当指定了格式时,将其更改为该格式将起作用 match 'v:api/*path', :to => redirect("/%{path}.%{format}") 缺点是在某些情况下没有指定格式,这会导致错
match 'v:api/*path', :to => redirect("/%{path}")
但是,格式不是请求的一部分。因此,当指定了格式时,将其更改为该格式将起作用
match 'v:api/*path', :to => redirect("/%{path}.%{format}")
缺点是在某些情况下没有指定格式,这会导致错误,因为格式不匹配
所以我的问题是。。。创建此catchall的正确方法是什么
其目的是,如果指定的版本号不存在该路由的版本,则应转到根路由,而不指定版本。好的,我想我已经解决了。事先警告一下,虽然很难看
match 'v:api/*path', :to => redirect("/%{path}.%{format}")
match '/v:api/*path', to: redirect { |params, request|
if params[:format]
"/#{params[:path]}.#{params[:format]}"
else
"/#{params[:path]}"
end
}