如何在after_save回调中使用Delayed :: Job?

Tom*_*man 0 ruby-on-rails callback delayed-job

我要运行的方法process_images异步after_saveDelayed::Job.但是,当我尝试:

after_save lambda { send_later(:process_images) }
Run Code Online (Sandbox Code Playgroud)

我得到了NoMethodError: You have a nil object when you didn't expect it!.(self.send_later(:process_images)工作)

小智 5

这可能有用......我确实记得在转换为Delayed :: Job.enqueue之前使用它一段时间:

after_save do |image|
  image.send_later(:process_images)
end
Run Code Online (Sandbox Code Playgroud)

你也可以尝试:

after_save :cue_process_images

def cue_process_images
  send_later(:process_images)
end
Run Code Online (Sandbox Code Playgroud)

我目前正在使用类似于后者的东西,使用回形针,它工作正常.