Rails не будет устанавливать сессии - PullRequest
0 голосов
/ 02 января 2019

У меня есть форма входа в систему, которая должна создать сеанс после предоставления правильных учетных данных, однако сеансы не сохраняются. Что вызывает это?

sessions_controller:

class SessionsController < ApplicationController
  def new
  end

  def create
    @user = User.find_by_username(params[:session][:username])
    if @user && @user.authenticate(params[:session][:password])
      session[:id] = @user.id
      redirect_to '/posts'
    else
      session[:id] = nil
      flash[:warning] = "Failed login- try again"
      redirect_to '/login'
    end 
  end

  def destroy
    session[:user_id] = nil 
    redirect_to login_path 
  end
end

Миграция:

class CreateSessions < ActiveRecord::Migration[5.2]
  def change
    create_table :sessions do |t|

      t.integer :session_id
      t.timestamps
    end
  end
end

1 Ответ

0 голосов
/ 02 января 2019

Я предполагаю, что вы используете гем activerecord-session_store для хранения сеансов в таблице.

добавить это в initializers / session_store.rb

require "action_dispatch/session/active_record_store"

Rails.application.config.session_store :active_record_store, :key => 
 '_lotuspay_session'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...