current_user - ноль в действии show контроллера пользователя - PullRequest
2 голосов
/ 23 мая 2019

Я взял на себя проект рельсов, где администратор может создавать пользователей. Аутентификация выполняется с помощью устройства 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.

1 Ответ

0 голосов
/ 23 мая 2019

Я на самом деле понял, у меня был другой before_action, который выводил пользователя без перенаправления на страницу входа.Следовательно, нет current_user.Так что сам код был проблемой!

...