Я использовал инструкции Rails Tutorial для создания рабочего логина.А потом, чтобы добавить авторизацию Google, я использовал метод omniauth.
Однако всякий раз, когда я вхожу в систему, используя учетную запись Google, я получаю сообщение об ошибке в session_controller.Где написано:
NoMethodError (undefined method `[]' for nil:N
ilClass): app/controllers/sessions_controller.rb:6:in `create'
Я добавляю session_controller
Sessions_controller.rb
class SessionsController < ApplicationController
def new
end
def create
@user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in user
params[:session][:remember_me] == '1' ? remember(user) : forget(user)
redirect_back_or user
else
flash.now[:danger] = 'Invalid email/password combination'
render 'new'
end
end
def create_from_omniauth
@user = User.from_provider_data(env["omniauth.auth"])
session[:user_id] = user.id
redirect_to user
end
def destroy
log_out if logged_in?
redirect_to root_url
end
def google_destory
session[:user_id] = nil
redirect_to root_url
end
end
Как мне решить эту проблему, любая помощь будет принята с благодарностью.
Спасибо!