延迟作业参数错误

sno*_*gel 3 ruby-on-rails delayed-job

我正在使用active_record fork(link)来使用delayed_job .

在控制器中:

guide = Rightsguide.new
guide.run(@works, current_user)   
Run Code Online (Sandbox Code Playgroud)

在Rightsguide ruby​​类中:

require 'delayed_job'
require 'delayed/tasks'
require 'prawn'
require 'open-uri'

class Runrightsguide

  def run(works, current_user)
    pdf = Rightsguidereport.new(works, current_user)
    filename     = "#{Rails.root}/public/#{Date.today}_rightsguide.pdf"
    pdf.render_file(filename)
    pdf_file = File.open(filename)
    archive = RightsguideArchive.new(:user_id => current_user)
    archive.pdf = pdf_file
    archive.save!

    User.find(current_user).notice "<a href='/rightsguide_archives' target='_blank'>View Rights Guide</a>", :level => :notice, :sticky => true, :title => "AIs generated." 
  end

end
Run Code Online (Sandbox Code Playgroud)

以上工作正常,但是当我使用其中一个delayed_job调用时,例如handle_asynchronously :runrun我得到的方法之后wrong number of arguments (2 for 1).

sno*_*gel 6

嗯.原来@works论证是问题所在.这是一个ActiveRecord关系.Delayed_job不喜欢它.将关系转换为ID数组就完成了这项工作.