延迟作业参数错误

时间:2012-08-30 21:44:03

标签: ruby-on-rails delayed-job

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

在控制器中:

guide = Rightsguide.new
guide.run(@works, current_user)   

在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

以上工作正常,但当我在handle_asynchronously :run方法之后使用run之类的delayed_job调用之一时,我得到wrong number of arguments (2 for 1)

1 个答案:

答案 0 :(得分:6)

嗯。结果@works参数是问题所在。这是一个ActiveRecord关系。 Delayed_job不喜欢它。将关系转换为ID数组就完成了这项工作。