禁用单个控制器操作的会话查找

时间:2014-02-28 15:43:18

标签: ruby-on-rails session

我想完全禁用控制器操作的会话,因为我希望这个单一控制器操作(它是对数千个值的自动完成操作,因此速度很重要)非常快

我尝试使用session_off,但它只是将session变量设置为nil,仍然在数据库中查找用户会话。

是否可以完全禁用Rails::SessionStore中间件,但仅限于单个控制器操作或URL?

我正在运行rails 3.2.17

1 个答案:

答案 0 :(得分:1)

答案是:在您自己的Rack中间件中处理此端点,并尽早将其插入堆栈!

只需路由到中间件对象,即可在config / routes.rb中实现此目的:

match 'my_autocomplete_endpoint', to: AutocompleteMiddleware

然后只返回来自中间件的响应,不要上堆。

您可以在config / application.rb的堆栈中将它放在任何位置:

config.middleware.insert_before(SomeOtherMiddleware, AutocompleteMiddleware)

例如,也许在Rails::SessionStore之前插入它。