0

問題のコード:

class Model < ActiveRecord::Base

    require 'Library'
    AN_ARRAY = [ 1, 2 ]
    THING = Classname.new.thing()

    def self.perform(param)
        # do stuff using THING, i.e. THING.do(something)
        do_things(param)
    end

    def self.do_things(param)
        # do stuff with AN_ARRAY and/or THING
    end

end

Rails がモデルをどのように処理するかはよくわかりません。上位 3 つのステートメントは 1 回だけ実行されますか? は 1 つだけですかTHING、それとも複数ある可能性がありますTHINGか? ワーカーを実行するためにキューに入れたらself.perform()、の状態が変わらない限り大丈夫THINGでしょうか? THING代わりに関数自体で初期化する必要がありますか? ありがとう。

4

1 に答える 1

0

クラスがロードされると、すべての行が ruby​​ によって 1 回評価されます。

次の 2 行では、大文字で始まる 2 つの定数を定義しています。これは、THING と AN_ARRAY が 1 つしかないことを意味します。

    AN_ARRAY = [ 1, 2 ]
    THING = Classname.new.thing()

以下のdefステートメントも 1 回評価され、最終的に 2 つのクラス メソッドが定義されます。

    def self.perform(param)
        # do stuff using THING, i.e. THING.do(something)
        do_things(param)
    end

    def self.do_things(param)
        # do stuff with AN_ARRAY and/or THING
    end

したがって、メソッドはキュー ワーカーで期待どおりに機能するはずです。

于 2013-09-29T13:01:29.263 に答える