2016-09-09 2 views
1

У меня есть API Rails 5, который мне нужен для использования метода cookies.Rails 5 API-режим с ActionDispatch :: 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 
+0

вы можете обеспечить действие от контроллера, где вы используете 'cookies' метод? –

+0

Добавлен код контроллера – Tallboy

ответ

2

Я исправил этот тип гетто, так что мне не нужно включать 50 000 дополнительных помощников.

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

Не очень, но это сработало для меня. Thanx. – Cornelius

0

вам нужно добавить этот модуль контроллера:

class ApplicationController < ActionController::API 
    include ActionController::Cookies 
Смежные вопросы