Уничтожить пользовательский сеанс без Devise Rails 5 - PullRequest
0 голосов
/ 14 ноября 2018

Я постараюсь сделать простую авторизацию пользователя без Devise.В моем контроллере сеанса есть новые действия: создание и уничтожение:

  def new
    @user = User.new
  end

  def create
    @user = User.find_by(name: user_params[:name])
    @user ||= User.create(user_params)
    if @user.valid? && @user.authenticate(user_params[:password])
      session[:user_id] = @user.id
      redirect_to tasks_path
    end
  end

  def destroy
    reset_session
  end

Но это не работает.Как я могу уничтожить сеанс пользователя?

1 Ответ

0 голосов
/ 14 ноября 2018

Что-то вроде этого должно сделать это. Это действительно зависит от того, какие помощники вы создали. Вам потребуется доступ к созданной вами переменной сеанса, а также к идентификатору пользователя, так что session.delete(@user.id) может оказаться тем, что вам нужно. Зависит от того, как это передается методу и к каким данным у вас есть доступ (есть ли действие перед действием или что-то, предоставляющее переменную @user, или вам нужно найти что-то вроде @user = User.find(:params), где params - идентификатор пользователя .

def destroy
  session.delete(:user_id)
  @user = nil
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...