Rails自动加载具有非确定性行为

时间:2017-05-12 22:13:28

标签: ruby-on-rails ruby autoload

我有两个课程app/responders/application_responderapp/responders/stripe/basic_responder

我在ApplicationResponder中有代码,如此:

class ApplicationResponder
    def self.responds_to(event_type, event_name)
        @@registered ||= []
        payload = {
            event_type: event_type,
            event_name: event_name,
            cls: self
        }
        @@registered << payload
    end

    def self.registered
        @@registered
    end
end

然后我的基本响应者注册了自己:

class Stripe::BasicResponder < ApplicationResponder

    responds_to :stripe, 'account.created'

    def respond(event)
        puts "foo!"
        pp event
    end

end

如果我加载rails控制台并调用ApplicationResponder.registered,我希望看到一个元素的列表。有时我会这样做,有时会返回一个空列表,对我来说这表明还没有评估过stripe / basic_responder吗?

任何想法如何解决这个问题?

我已经尝试将响应者添加到application.rb中的急切加载路径:

config.eager_load_paths += %W(#{config.root}/app/responders)

0 个答案:

没有答案