[Help] How to pass multiple arguments to a method in a worker?

Hi, guys, I ran into a problem while I tried to pass more than one parameters to a method in the worker class, it fails, from the backgroundrb log, I found that:

  You have a nil object when you didn't expect it!   You might have expected an instance of ActiveRecord::Base.   The error occurred while evaluating nil.

Seems the args is nil, but a hash I passed in my controller. From the post: http://rubyforge.org/pipermail/backgroundrb-devel/2008-April/001668.html, it should be a hash if there are multiple arguments. Here's what I did:

In my controller: def blah   MiddleMan.worker(:hard_worker).send_mail(:args => {:recipient => 'blahblah@gmail.com', :subject => 'BlahBlah'}) end

In my worker class: def send_mail(args)   emailer.send_mail(args[:recipient], args[:subject]) end

Is there anything wrong?

Additional info: ruby-1.8.6 backgroundrb 1.0.4

All the best, Hao Liu

Hao Liu wrote:

  MiddleMan.worker(:hard_worker).send_mail(:args => {:recipient => 'blahblah@gmail.com', :subject => 'BlahBlah'})

Just send the parameters as a single hash:

send_mail(:recipient => 'blah@blah.org', :subject => 'BlahBlah')