如何覆盖特定控制器中的Rails会话存储?

时间:2011-01-24 23:35:48

标签: ruby-on-rails session ruby-on-rails-3

我有一个使用默认CookieStore的Rails 3应用程序。该应用程序还有一个管理部分,控制器继承自基本管理控制器。我想将ActiveRecordStore用于管理页面,同时继续将CookieStore用于其他所有内容。

为什么不将cookies用于一切?我需要为管理页面存储大的每会话值。

(我很可能会错误地构建我的应用程序。对于Rails的新手,似乎主应用程序和管理部分应该是分享某些部分的独立应用程序,如模型,但我还没有'找到了这种方法的任何例子。)

1 个答案:

答案 0 :(得分:2)

我不认为可以更改每个控制器的会话存储,因为会话数据是使用中间件加载/卸载的。

$ rake middleware
...
use ActionDispatch::Session::CookieStore
...

我认为最好在整个网站上使用Active Record商店。普通用户无论如何都无法查看会话数据,因此它仍然是安全的。或者更好的是,如果您担心SQL服务器性能,请使用某种NoSQL存储。但是,请注意Memcached每个密钥只能有1MB的数据:)