Я взял на себя проект рельсов, где администратор может создавать пользователей.
Аутентификация выполняется с помощью устройства devise.
После входа в систему обычного пользователя все работает нормально. Переменная current_user
содержит моего пользователя. Но когда я пытаюсь получить доступ к профилю пользователя по этой ссылке <%= link_to "My profile", user_path(current_user) %>
, ведущей к User#show
. Я получаю ошибку, что current_user
равен нулю.
Я не понимаю, почему вдруг current_user
равен нулю.
Это потому, что в действии show установлена переменная @user get?
#user_controller.rb
class UsersController < ApplicationController
load_and_authorize_resource
before_action :set_user, only:[:destroy, :edit, :show, :update, :check_bonus]
before_action :reset_session, except:[:show, :check_bonus]
def show
@user = User.find(params[:id])
end
private
def set_user
@user = User.find(params[:id])
end
end
Я действительно понятия не имею, что искать. В некоторых моментах сеанс восстанавливается (session[:validated] = false
), но не в действии User # show.