gpt4 book ai didi

ruby-on-rails-4 - 为什么 session[ :] doesn't work in grape - rails?

转载 作者:行者123 更新时间:2023-12-04 06:56:15 24 4
gpt4 key购买 nike

我使用 Rails 和 Grape 作为 API。我只是好奇为什么 Grape 中没有 session[:something] 方法?我可以创建 cookie,但也不能创建签名 cookie。它给我一个错误。

最佳答案

Grape 是用于构建 API 的轻量级框架,当您向 Grape API 端点发送请求时,响应不会通过所有 Rails 中间件,而是通过一组精简的 Rack 中间件。因此,Grape 是专门为构建 API 而设计的,您可以根据自己的要求插入所需的中间件。主要目标是使 API 尽可能轻量级,并实现高效的速度和性能。

如果要在安装在 Rails 上的 Grape 中启用 session ,则需要使用 ActionDispatch::Session::CookieStore 中间件。

class API < Grape::API
use ActionDispatch::Session::CookieStore

helpers do
def session
env['rack.session']
end
end

post :session do
session[:foo] = "grape"
end

get :session do
{ session: session[:foo] }
end
end

您可以将 grape_session gem 用于上述目的。

如果您想要在没有 Rails 中间件的 Rack 应用程序中使用 session 的默认方式,请使用 Rack 中可用的默认 Rack::Session::Cookie 中间件。

关于ruby-on-rails-4 - 为什么 session[ :] doesn't work in grape - rails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35344117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com