【发布时间】:2018-05-22 21:40:19
【问题描述】:
测试出错。开发和生产都没有错误。
Error:
UsersTest#test_creating_a_user:
NoMethodError: undefined method `users_url' for #<RegistrationsController:0x00007fd3e69d1a18>
Did you mean? user_session_url
Did you mean? user_session_url
app/controllers/registrations_controller.rb:11:in `check_captcha'
有一个设计注册控制器:
class RegistrationsController < Devise::RegistrationsController
prepend_before_action :check_captcha, only: [:create]
private
def check_captcha
unless verify_recaptcha
self.resource = resource_class.new sign_up_params
resource.validate # Look for any other validation errors besides Recaptcha
set_minimum_password_length
respond_with resource
# self.resource = resource_class.new sign_up_params
# respond_with_navigational(resource) { render :new }
end
end
def after_inactive_sign_up_path_for resource
new_user_session_path
end
end
路由
Rails.application.routes.draw do
devise_for :users, only: :omniauth_callbacks, controllers: {omniauth_callbacks: 'omniauth_callbacks'}
范围 '(:locale)', :locale => /en|ru/ do
root :to => 'index#index'
devise_for :users, :controllers => {
:registrations => 'registrations',
:invitations => 'invitations'
},
:path => 'auth',
:path_names => {
:sign_in => 'login',
:sign_out => 'logout',
:password => 'secret',
:confirmation => 'verification',
:unlock => 'unblock',
:registration => 'register',
:sign_up => 'cmon_let_me_in'
},
skip: :omniauth_callbacks
end
传递给respond_with resource 的资源有效。
那是什么?!?!
【问题讨论】:
标签: ruby-on-rails devise ruby-on-rails-5 recaptcha