Ruby on rails Rails LinkedIn登录错误
几个小时以来,我一直在想如何解决这个问题,但我无法解决。我不断地发现这个错误: 无法自动加载常量OmniAuthCallbackController,需要/Users/omar.amiri/Desktop/rails-designe-roles/app/controllers/omniauth\u callbacks\u controller.rb来定义它 omniauth\u回调\u控制器.rbRuby on rails Rails LinkedIn登录错误,ruby-on-rails,linkedin-gem,omniauth-linkedin,Ruby On Rails,Linkedin Gem,Omniauth Linkedin,几个小时以来,我一直在想如何解决这个问题,但我无法解决。我不断地发现这个错误: 无法自动加载常量OmniAuthCallbackController,需要/Users/omar.amiri/Desktop/rails-designe-roles/app/controllers/omniauth\u callbacks\u controller.rb来定义它 omniauth\u回调\u控制器.rb 值得确认的是,omniauth_callbacks_controller.rb在app/contr
值得确认的是,omniauth_callbacks_controller.rb在app/controllers/中,并且user.rb.rb是user.rb的拼写错误,以避免任何混淆。是的,omniauth_callbacks_controller.rb在app/controllers中,而我的用户模型是唯一的user.rb…感谢您说出拼写错误。你能明白为什么它不起作用吗?
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
def linkedin
auth = env["omniauth.auth"]
@user = User.connect_to_linkedin(request.env["omniauth.auth"],current_user)
if @user.persisted?
flash[:notice] = I18n.t "devise.omniauth_callbacks.success"
sign_in_and_redirect @user, :event => :authentication
else
session["devise.linkedin_uid"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end
end
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable
def self.connect_to_linkedin(auth, signed_in_resource=nil)
user = User.where(:provider => auth.provider, :uid => auth.uid).first
if user
return user
else
registered_user = User.where(:email => auth.info.email).first
if registered_user
return registered_user
else
user = User.create(name:auth.info.first_name,
provider:auth.provider,
uid:auth.uid,
email:auth.info.email,
password:Devise.friendly_token[0,20],
)
end
end
end
end
Rails.application.routes.draw do
root to: 'visitors#index'
devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks" }
resources :users
end