我在用Devise进行认证。
我在Api命名空间中有一个自定义注册控制器,定义如下:
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']。
知道我该怎么做吗?
发布于 2014-12-26 14:40:59
我不认为你还需要一个解决方案,但我经历了同样的问题,只是解决了这个问题:
而不是
namespace :api do
devise_for :users
end在config.rb文件中,只需放置:
scope :api, module: :api do
devise_for :users
end希望它能帮助到其他人。
https://stackoverflow.com/questions/22220826
复制相似问题