我正在使用 Devise 进行身份验证。
我在 Api 命名空间中有一个自定义注册 Controller ,定义如下:
class Api::RegistrationsController < Devise::RegistrationsController
# ...
end
我的用户模型在 Api 命名空间之外定义如下:
class User < ActiveRecord::Base
# ...
end
在我的功能测试中,我在我的设置中添加了以下行,以便 Devise 知道我们使用的是 user
而不是 api_user
:
@request.env["devise.mapping"] = Devise.mappings[:user]
它在我的测试中效果很好,但我不知道如何在现实世界中复制这种行为。
sign_up_params
方法在清理时查找 params['api_user']
而不是 params['user']
。
知道我该怎么做吗?
最佳答案
我不认为你仍然需要解决方案,但我遇到了同样的问题并解决了它:
代替
namespace :api do
devise_for :users
end
在您的 config/routes.rb 文件中,只需输入:
scope :api, module: :api do
devise_for :users
end
希望它能帮助其他人:D
关于ruby-on-rails - 自定义设计资源名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22220826/