Rails 5 API模式与ActionDispatch :: Cookies

时间:2016-09-09 04:40:28

标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-5

我有一个Rails 5 API,我需要使用cookies方法。

我需要存储前端使用的cookie和一些基本用户数据(不是服务器会话状态)。

我在application.rb

中有这个
config.middleware.insert_after ActionDispatch::Callbacks, ActionDispatch::Cookies

当我拨打rake middleware

时,它会正常显示

但这仍然会发生......

NameError (undefined local variable or method `cookies' for #<SessionsController:0x007fe96fd671e8>):

控制器

class SessionsController < ApplicationController

  def login
    ...
    add_login_headers(current_company.id, user.id, user.format_rights)
    ...
  end

  private

  def add_login_headers(company_id, user_id, rights)
    ...

    cookies.permanent[Settings.cookies.app] = {
      value: JSON.generate(company_id: company_id, user_id: user_id, rights: rights),
      secure: true
    }
  end

end

2 个答案:

答案 0 :(得分:5)

我已经修好了这种贫民窟的方式,所以我不需要包括5万名额外帮手。

mod_wsgi

答案 1 :(得分:1)

您需要添加此控制器模块:

class ApplicationController < ActionController::API
  include ActionController::Cookies