3

我对使用 active_record 分支(链接)的延迟作业感到困扰。

在控制器中:

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的方法之后。runwrong number of arguments (2 for 1)

4

1 回答 1

6

唔。原来@works争论是问题所在。这是一个 ActiveRecord 关系。Delayed_job 不喜欢它。将关系转换为 ID 数组就可以了。

于 2012-08-31T11:30:34.613 回答