1

我在使用 api 版本实现mount_devise_token_auth_for时遇到问题。
比方说:

scope module: :v1, constraints: ApiConstraints.new(version: 1) do
    mount_devise_token_auth_for 'User', at: '/auth', skip: [  ],  controllers: {
       registrations:      'v1/users/registrations',
       sessions:           'v1/users/sessions'
    }
end

如果我想添加 v2 并将身份验证安装在同一路径,如下所示:

scope module: :v2, constraints: ApiConstraints.new(version: 2, default: true) do
    mount_devise_token_auth_for 'User', at: '/auth', skip: [  ],  controllers: {
       registrations:      'v2/users/registrations',
       sessions:           'v2/users/sessions'
    }
end

它失败了,因为用于设计的命名路由助手已经存在这些名称。
我可以使用命名空间来处理它,但我们不想要 URI 中的版本。
请指教。
谢谢。

4

1 回答 1

2

我忘了发布我的问题的答案。我必须用

scope module: :v2, as: 'v2', constraints: ApiConstraints.new(version: 2, default: true) do
    mount_devise_token_auth_for 'User', at: '/auth', skip: [  ],  controllers: {
       registrations:      'v2/users/registrations',
       sessions:           'v2/users/sessions'
    }
end

'as: v2' 部分生成唯一的命名路由助手,一切正常。

于 2016-09-13T11:41:22.647 回答