Rails:在Initializer中访问会话

时间:2015-03-25 17:31:52

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

我有兴趣记录我的GET和POST所花费的时间(按照在Views,ActiveRecords等中花费的时间)。

this blog之后,我创建了一个初始化器/ timing.rb并订阅了如下通知 ActiveSupport::Notifications.subscribe /process_action.action_controller/

我能够看到每次GET和POST的时间信息。

另外我在会话中有一些信息(我们使用redis),我打算在初始化程序中记录这个时间日志

问题

  1. 如何在initializers / timing.rb中访问会话对象?我做了一个 很多谷歌搜索,但真的找不到答案 工作。
  2. 是我在timing.rb线程中声明和使用的变量 安全,如果我的Web服务器提供多个http请求 同时?
  3. 我必须使用模块吗?
  4. 我的软件 Rails 3.2.13

    FYI this link中的答案没有帮助

1 个答案:

答案 0 :(得分:0)

链接帖子向您展示如何构建的事件对象包含控制器:controller = event.payload[:controller]

获得控制器后,您只需拨打controller.session即可访问其会话。

关于线程安全性,块的本地变量是安全的,线程局部变量也是如此。还有别的,你必须要小心。不确定必须使用模块是什么意思。