【问题标题】:Rails 3: Disable session cookiesRails 3:禁用会话 cookie
【发布时间】:2011-04-29 13:18:30
【问题描述】:

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

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

我在某处看到使用

session :off

会做这项工作,但我看到它已被弃用。有什么解决办法吗?

谢谢!

【问题讨论】:

  • 你的控制器是什么样的?您是指控制器中的会话(在此操作中,还是在过滤器中)或您从中继承的父控制器?除非您在 Rails 3 中显式访问它,否则不应使用 Session。
  • 它是一个扩展
  • 好吧,我认为这只发生在开发环境中,因为我一直在几个项目中工作,在这些项目中,firebug 日志控制台被 cookie 会话更改发送给垃圾邮件,但在转移到生产环境时它不会发生。任何人都可以确认吗?提前致谢

标签: ruby-on-rails session cookies


【解决方案1】:

只需将session_store 设置为:disabled 即可,如下所示:

MyApp::Application.config.session_store :disabled

这将完全禁用会话以及对flash 的访问。

【讨论】:

  • 这将适用于整个应用程序,而不仅仅是控制器
【解决方案2】:

或者无论如何都可以使用session :off(即使在Rails 3中):

https://github.com/kares/session_off

class StylesheetsController < ActionController::Base
  session :off # for all actions in this controller
end

【讨论】:

    【解决方案3】:

    在 Rails 3 中你可以使用 ActiveControllerMetal 并且只包含你需要的特性 http://asciicasts.com/episodes/150-rails-metal

    【讨论】:

      【解决方案4】:

      这是 2.3 中禁用会话的另一种方法,将会话存储设置为 nil:

      http://johnpwood.net/2009/09/04/disabling-sessions-in-rails-2-3-4/

      也许你可以在 3 中做同样的事情?

      【讨论】:

        猜你喜欢
        • 2011-07-23
        • 2013-04-28
        • 2011-04-11
        • 2011-05-11
        • 2011-05-22
        • 1970-01-01
        • 2012-12-02
        • 2018-10-10
        • 1970-01-01
        相关资源
        最近更新 更多