2016-09-09 39 views
1

cookiesメソッドを使用するために必要なRails 5 APIがあります。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

綺麗ではありませんが、それは私のために働いていました。 〜 – Cornelius

0

あなたはこのコントローラモジュールを追加する必要があります。

class ApplicationController < ActionController::API 
    include ActionController::Cookies 
関連する問題