【发布时间】:2015-11-27 14:28:26
【问题描述】:
这段代码中的Thread.current 是什么意思?我正在查看this 在 Rails 应用程序中使用 DCI 的示例。在 lib/context.rb 中,有这样的:
module Context
include ContextAccessor
def context=(ctx)
Thread.current[:context] = ctx
end
def in_context
old_context = self.context
self.context = self
res = yield
self.context = old_context
res
end
end
在应用程序/上下文中的各种上下文中使用,例如:
def bid
in_context do
validator.validate
biddable.create_bid
end
#...
end
在in_context 块中运行代码并在当前线程上设置键值对有什么好处?
【问题讨论】:
-
它基本上是一个全局变量。只有线程安全。
标签: ruby-on-rails ruby dci