Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何覆盖特定控制器中的Rails会话存储?_Ruby On Rails_Session_Ruby On Rails 3 - Fatal编程技术网

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

Ruby on rails 如何覆盖特定控制器中的Rails会话存储?,ruby-on-rails,session,ruby-on-rails-3,Ruby On Rails,Session,Ruby On Rails 3,我有一个Rails 3应用程序,它使用默认的CookieStore。应用程序还有一个管理部分,控制器从基本管理控制器继承该部分。我想在管理页面中使用ActiveRecordStore,而在其他页面中继续使用CookieStore 为什么不什么都用饼干呢?我需要为管理员页面存储大的每会话值 (我很容易发现我的应用程序结构不正确。作为Rails的新手,主应用程序和管理部分似乎应该是单独的应用程序,共享某些部分,如模型,但我没有找到任何这种方法的示例。)我认为不可能更改每个控制器的会话存储,由于会话数

我有一个Rails 3应用程序,它使用默认的
CookieStore
。应用程序还有一个管理部分,控制器从基本管理控制器继承该部分。我想在管理页面中使用
ActiveRecordStore
,而在其他页面中继续使用
CookieStore

为什么不什么都用饼干呢?我需要为管理员页面存储大的每会话值


(我很容易发现我的应用程序结构不正确。作为Rails的新手,主应用程序和管理部分似乎应该是单独的应用程序,共享某些部分,如模型,但我没有找到任何这种方法的示例。)

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

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

我认为你最好使用整个网站的活动记录存储。普通用户无论如何都无法查看会话数据,因此它仍然是安全的。如果担心SQL server性能,最好使用某种NoSQL存储。但是,请注意,Memcached每个键只能有1MB的数据:)

为什么不将ActiveRecordStore或Memcached store用于所有内容?