无法将会话数据存储到cookie中并发送回服务器

时间:2015-08-21 15:39:30

标签: ruby session ruby-on-rails-4 cookies

目前,我正在使用Rails 4处理Web应用程序的注册功能。基本上,工作流程如下:

  1. 用户填写注册表单并将其提交给服务器
  2. 注册请求将由 UserController
  3. 创建方法处理
  4. 会话数据随后将存储在cookie中并发送回服务器以在请求之间保留会话数据。
  5. 但是,在尝试注册后观察响应标题时,我没有看到 set-cookie 属性。而且,实际上,当前的cookie不会存储服务器实现会话的任何会话数据。以下是我的代码:

    users_controller.rb

      class UsersController < ApplicationController
         ...
         def create
            @user = User.create(user_params)
    
            # set session
            log_in @user
    
            render 'index'
         end
        ...
      end
    

    application_controller.rb

      class ApplicationController < ActionController::Base
         # Prevent CSRF attacks by raising an exception.
         # For APIs, you may want to use :null_session instead.
         protect_from_forgery with: :null_session
         include SessionHelper
      end
    

    session_helper.rb

      module SessionHelper
    
    
         # Log in a given user
         def log_in(user)
            # Send session stored in a temporary cookie to browser
            # By default, cookie will be storage mechanism for session
            session[:user_id] = user.id
         end
    

    如果有人可以解释问题的根源并给我一些解决方法,我将感激不尽。

1 个答案:

答案 0 :(得分:0)

您是否尝试过with: :null_session中没有参数application_controller