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 に答える