我已经阅读了 API 版本控制的最佳实践?. 我同意将版本放在 url 路径而不是 HTTP 标头中。
为了实现这一点,我有一个这样的命名空间控制器:
class Api::V1::UsersController < Api::BaseController
  def show
    ...
  end
end
路线是:
current_api_routes = lambda do
  resource :users
end
namespace :api do
  namespace :v1, ¤t_api_routes
end
然后rake routes我可以得到这样的路线:
api_v1_user GET    /api/v1/users/:id(.:format)                       api/v1/users#show
...
我希望该版本v1.2转到v1. 然后我可以像这样在控制器中获取次要版本号:
class Api::V1::UsersController < Api::BaseController
  def show
    minor_version = params[:minor_version] # minor_version = 2
    ...
  end
end
有没有办法做到这一点?