我正在尝试使用此代码以通用方式将各种功能排入队列:
{ Object.const_get(object_name).new(job[:params]||={}).delay(:queue => queue).send(method_name)}
job
是一个哈希,我在其中获取名称、对象参数等...
我的问题是在这种情况下:
class Foo
def initialize
puts 'bar'
end
end
Foo
实例化不带参数。
因此,如果我将前一行与Foo
as一起使用,object_name
我将收到此错误:
ArgumentError: wrong number pf arguments (1 for 0)
我绝对不想写这样的东西:
if job.has_key?[:param] then
Object.const_get(object_name).new(job[:params]||={}).delay(:queue => queue).send(method_name)
else
Object.const_get(object_name).new().delay(:queue => queue).send(method_name)
end
我可以写什么来代替job[:params]||={}
它适用于每种情况?
提前致谢。