相关疑难解决方法(0)

Rails 3:禁用会话cookie

我创建了一个控制器来提供动态样式表,因此我可以使用image_tag帮助程序并添加一些缓存控件.

问题是,每次在浏览器中加载css文件时,我都会在firebug中看到"Cookie xxx已更改"消息.我想禁用或绕过此控制器的会话cookie.

我在某个地方读过这个

session :off
Run Code Online (Sandbox Code Playgroud)

会做的工作,但我看到它已被弃用.有什么工作吗?

谢谢!

cookies session ruby-on-rails

14
推荐指数
2
解决办法
7086
查看次数

如何在rails 2.3.3中有条件地分配ActionController :: Base.session

我有一个rails应用程序,在config/initializers/session_store.rb文件中包含以下内容:

ActionController::Base.session = {
  :key         => '_app_session',
  :secret      => 'a really long string here',
  :expire_after => 2.minutes
}

ActionController::Base.session_store = :active_record_store
Run Code Online (Sandbox Code Playgroud)

因此,在正常操作期间,我们看到在数据库中为每个会话创建的ActiveRecord对象.问题是我们并不总是想为请求创建会话 - 我们希望能够关闭自动请求的会话创建.我们在数据库中看到数千个会话记录,每个自动请求一个.在rails 2.3.3之前,可能存在以下情况:

class ApplicationController < ActionController::Base
  session :off
  ...
end
Run Code Online (Sandbox Code Playgroud)

但现在在rails 2.3.3中"session:off"已被弃用,因为会话现在是延迟加载的 - 如果你不使用它们,它们就不会被创建.问题似乎是会话对象始终在sessionstore.rb文件中分配,因此始终创建.如果从配置文件中删除会话分配块,则在自动请求后不会显示会话记录.我的问题是,如何将配置分配移出session_store.rb并进入ApplicationController类(或其他地方),只有在请求不是自动化的情况下才可以有条件地分配会话?我担心在执行控制器处理程序之前可能需要会话配置数据.我在哪里可以分配会话密钥值?

在此先感谢您的帮助.

session lazy-loading ruby-on-rails

5
推荐指数
1
解决办法
3086
查看次数

标签 统计

ruby-on-rails ×2

session ×2

cookies ×1

lazy-loading ×1