【发布时间】:2015-03-26 07:44:26
【问题描述】:
在创建“Klass”实例后,我有一个非常昂贵的方法来运行,所以我想在 DelayedJob 中排队。
class Klass
has_many :klass_instances
after_create :create_klassinstances
def create_klassinstances
.....
delay.create_if_ok_to_create_klass_instances
.....
end
end
但是这会引发错误
#<ArgumentError: job cannot be created for non-persisted record:
我不太明白。我正在使用“after_create”回调,所以现在 Klass 记录肯定必须存在一个 ID?我玩过 pry 并在 create_klassinstances 方法中调用“self”返回 ID 设置为 nil 的非持久对象。
【问题讨论】:
标签: ruby-on-rails ruby activerecord delayed-job