【发布时间】:2023-04-08 02:04:02
【问题描述】:
嘿,我们有一个库类 (lib/Mixpanel),它调用延迟作业,如下所示:
class Mixpanel
attr_accessor :options
attr_accessor :event
def track!()
..
dj = send_later :access_api # also tried with self.send_later
..
end
def access_api
..
end
问题是当我们运行 rake jobs:work: 时会出现以下错误:
undefined method `access_api' for #<YAML::Object:0x24681b8>
知道为什么吗?
【问题讨论】:
-
似乎延迟的工作不知道您的库类,所以它只是变成了一个 YAML::Object,抱歉,我不知道如何让它加载您的库类。
-
我注意到这个问题存在于任何不是
ActiveRecord模型的东西上。我的 PORO 在app/models中,通常它是由 Rails 自动加载的。delayed_job似乎有问题,除非我使用 Jonathan 下面描述的初始化程序解决方案。