我想在应用程序控制器中包含基于实例变量的模块。
我现在有这样的东西:
class ApplicationController
before_filter :include_module
def include_module
@@site = "foo"
class_eval{ include @@site.classify.constantize::Bar }
end
end
但是,我想让这个片段线程安全。有可能吗?我想实现的是,对每个请求加载模块,其名称取决于一些变量。
AFAIK Rails是线程安全的,在MRI上是单线程的。然而,上下文很重要。你在做核磁共振还是JRuby?我建议你通读下面的3次
http://m.onkey.org/thread-safety-for-your-rails
http://yehudakatz.com/2010/08/14/threads-in-ruby-enough-already/
http://blog.headius.com/2008/08/qa-what-thread-safe-rails-means.html
编辑:如果rails应用程序是单线程的,那么变量是线程安全的。我之前应该补充一下。在这种情况下,Rails是线程安全的。