grape共享rails activerecord-session_store

时间:2016-09-22 06:09:47

标签: ruby-on-rails ruby rake grape grape-api

我想在grape-api中使用Rails activerecord-session_store的会话。 但是下面代码中的env['rack.session'][:foo]为空。 请告诉我如何解决。

class API < Grape::API
    use ActionDispatch::Session::ActiveRecordStore
    ~~
    get :ping do
        p env['rack.session'][:foo]
        env['rack.session'][:foo] = "bar"
    end
end

1 个答案:

答案 0 :(得分:0)

Rails会话讨厌符号,你可以放入符号,但是获取值总是要使用字符串,所以试试session['foo']

我使用葡萄帮助方法来session访问会话,实际上是env['rack.session']

顺便说一句,如果你想重用你的rails会话,不要忘记将名称设置为与rails会话cookie相同的名称:

use ActionDispatch::Session::ActiveRecordStore, key: '_appname_session'