0

我想根据实例变量在我的应用程序控制器中包含模块。

我现在有这样的事情:

class ApplicationController

  before_filter :include_module

  def include_module
    @@site = "foo"
    class_eval{ include @@site.classify.constantize::Bar }
  end
end

但是,我想让这个片段线程安全。可能吗?我想要实现的是每个请求加载模块,其名称取决于某个变量。

4

1 回答 1

0

AFAIK Rails 是线程安全的,在 MRI 上将是单线程的。然而,上下文很重要。您正在运行 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 是线程安全的。

于 2012-08-30T17:44:45.793 回答