我创建了一个控制器来提供动态样式表,因此我可以使用image_tag帮助程序并添加一些缓存控件.
问题是,每次在浏览器中加载css文件时,我都会在firebug中看到"Cookie xxx已更改"消息.我想禁用或绕过此控制器的会话cookie.
我在某个地方读过这个
session :off
Run Code Online (Sandbox Code Playgroud)
会做的工作,但我看到它已被弃用.有什么工作吗?
谢谢!
我有一个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类(或其他地方),只有在请求不是自动化的情况下才可以有条件地分配会话?我担心在执行控制器处理程序之前可能需要会话配置数据.我在哪里可以分配会话密钥值?
在此先感谢您的帮助.