我有两个课程app/responders/application_responder
和app/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)