【问题标题】:Rails 5 API mode with ActionDispatch::Cookies带有 ActionDispatch::Cookies 的 Rails 5 API 模式
【发布时间】:2016-09-09 04:40:27
【问题描述】:

我有一个 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

【问题讨论】:

  • 你能提供来自你使用cookies方法的控制器的动作吗?
  • 添加控制器代码

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


【解决方案1】:

我已经修复了这种贫民区的方式,这样我就不必增加 50,000 个额外的帮手。

def cookies
  # helpers not available in --api mode
  request.cookie_jar
end

【讨论】:

    【解决方案2】:

    你需要添加这个控制器模块:

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

    【讨论】:

      猜你喜欢
      • 2019-11-16
      • 2018-06-20
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多