我在使用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中的版本
请指教。
感谢。
答案 0 :(得分:1)
我忘了发一个问题的答案。我必须用
定义v2scope 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' part生成唯一的命名路由助手,一切正常。