Rails observe 中获取 session

davidqhr · 2012年05月25日 · 最后由 davidqhr 回复于 2012年07月24日 · 3005 次阅读

正常来说,model 层拿不到 session 的信息的,但是如果想直接拿到 session,有什么好办法么?

目前想到的一种方法是这样,可是会不会有线程安全问题?

class MyObserverClass < ActiveRecord::Observer
  cattr_accessor :current_user
end

class ApplicationController
  before_filter :set_current_user_for_observer

  def set_current_user_for_observer
    MyObserverClass.current_user = session[:user]
  end
end

如上问题,和 rails 的线程机制,有人能给我解答一下么?

#1 楼 @xds2000 呵呵,已经解决了,不过跟你提到的这个方式基本一样~不过还是谢谢!

#1 楼 @xds2000 刚好有这个需求,这个办法不错,以前用 Java 的时候,也用过这种线程的办法。

如果只是 current user 的话,是不是可以使用 devise 提供的 helper 方法

#4 楼 @zlx_star 这个 current_user model 层是拿不到的,observe 中同样也拿不到

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册