Ruby on rails 设计+;谷歌认证&x2B;可安装引擎路由错误

Ruby on rails 设计+;谷歌认证&x2B;可安装引擎路由错误,ruby-on-rails,authentication,ruby-on-rails-4,devise,Ruby On Rails,Authentication,Ruby On Rails 4,Devise,我正在构建一个用于身份验证的rails应用程序。这里我使用了rails引擎,它包含了整个身份验证过程,我正在使用googleauth和Desive。 问题:当用户用谷歌点击“登录”时,它会成功重定向gmail登录,成功登录后会重定向到http://localhost:3000/users/auth/google_oauth2/callback?......下面是它显示的问题 Routing Error uninitialized constant OmniauthCallbacksControl

我正在构建一个用于身份验证的rails应用程序。这里我使用了rails引擎,它包含了整个身份验证过程,我正在使用googleauth和Desive。 问题:当用户用谷歌点击“登录”时,它会成功重定向gmail登录,成功登录后会重定向到
http://localhost:3000/users/auth/google_oauth2/callback?......
下面是它显示的问题

Routing Error
uninitialized constant OmniauthCallbacksController
my_engine/routes.rb

devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks" }, 
  :class_name => "MyEngine::User", module: :devise
omniauth\u回调\u控制器.rb

require_dependency "my_engine/application_controller"

module MyEngine
  class OmniauthCallbacksController < Devise::OmniauthCallbacksController   
    def googleoauth2
      .....
    end
  end
end
 def googleoauth2  
  @auth = env[OMNI_AUTH]
  @auth_user = AuthUsers.find_by_email(@auth.info.email)
  unless @auth_user
    flash[:error] = "Sorry, you are not authorized."
    redirect_to "/users/sign_in"
  end
  @signed_up_user = User.find_by_email(@auth.info.email)
  email = @auth.info.email
  unless @signed_up_user
    @user = User.find_for_google_oauth2(request.env[OMNI_AUTH], current_user)
  end
  if @auth_user && @signed_up_user
    @user = User.find_for_google_oauth2(request.env[OMNI_AUTH], current_user)
    sign_in_and_redirect @user, :event => :authentication
  end
end
omniauth\u回调\u控制器.rb

require_dependency "my_engine/application_controller"

module MyEngine
  class OmniauthCallbacksController < Devise::OmniauthCallbacksController   
    def googleoauth2
      .....
    end
  end
end
 def googleoauth2  
  @auth = env[OMNI_AUTH]
  @auth_user = AuthUsers.find_by_email(@auth.info.email)
  unless @auth_user
    flash[:error] = "Sorry, you are not authorized."
    redirect_to "/users/sign_in"
  end
  @signed_up_user = User.find_by_email(@auth.info.email)
  email = @auth.info.email
  unless @signed_up_user
    @user = User.find_for_google_oauth2(request.env[OMNI_AUTH], current_user)
  end
  if @auth_user && @signed_up_user
    @user = User.find_for_google_oauth2(request.env[OMNI_AUTH], current_user)
    sign_in_and_redirect @user, :event => :authentication
  end
end
目录结构::

MyEngine ->app -> controllers -> my_engine -> omniauth_callbacks_controller.rb

my_engine/routes.rb中的更改

devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks" }, 
  :class_name => "MyEngine::User", module: :devise
为:用户、:控制器=>{:omniauth\u回调=>“omniauth\u回调”}设计, :class_name=>“MyEngine::User”,模块::设计

为:用户,:控制器=>{:omniauth\u回调=>“我的引擎/omniauth\u回调”},
:class_name=>“MyEngine::User”,module::designe

你能发布你点击链接后发生的事情的日志吗?它成功重定向到谷歌登录页面,只有回调阶段产生问题。你能发布回调代码吗,那里肯定有问题。@CaffeineCoder你是在要求谷歌OAuth2采取行动吗?是的,它的控制器代码。