我的应用程序的自定义版本为Devise::RegistrationsController
。当我尝试运行它时,我收到以下错误:
Failure/Error: post :create
AbstractController::ActionNotFound:
Could not find devise mapping for path "/users".
Maybe you forgot to wrap your route inside the scope block? For example:
devise_scope :user do
match "/some/route" => "some_devise_controller"
end
我不明白为什么我会收到这个错误,因为从用户的角度来看,一切都运行良好。这是我在routes/config.rb
中的内容:
devise_for :users, :path_names => {:sign_in => 'login', :sign_out => 'logout', :sign_up => 'signup'}
有什么想法吗?在为Devise控制器编写规范时,我有什么特别的事情吗?
答案 0 :(得分:0)
在测试Devise控制器时,需要指定范围。它很简单:
before { @request.env['devise.mapping'] = Devise.mappings[:user] }
假设用户是您尝试进行身份验证的模型