2011-02-26 36 views

回答

1

你不应该做任何特殊的事情才能使这个工作。例如,你可以做可能做这样的事情:

ScribdFu.new.delay.upload_to_scribd 

如果你愿意,你还可以在一个功能或您自己的模式把这个包:

class Attachment 
    def upload 
    ScribdFu.new(self).upload_to_scribd 
    end 
end 

Attachment.first.delay.upload 

PS:我不知道如果我对ScribdFu gem调用的语法是正确的,但是您应该可以使用延迟方法来对延迟作业进行排队。

来完成你想做的事,您的评论,创建一个名为(配置/初始化/ delay_scribd.rb),并添加以下代码行:

module ScribdFu 
    module InstanceMethod 
    handle_asynchronously :upload_to_scribd 
    end 
end 

这将意味着任何时候调用此函数它将在延迟工作中被调用,而不必明确地调用延迟方法。 结束

+0

感谢您的回答。我希望每次调用upload_to_scribd都要通过delayed_job处理,而不是进行明确的调用。原因是这个gem增加了一个after_save方法,它调用:upload_to_scribd,这是我特别想要推迟的。我可以简单地明确地设置after_save:与您的答案中的方法一起上传吗?这会覆盖ScribdFu的默认after_save吗?如果不是,我怎么能覆盖这个?如果未被覆盖,upload_to_scribd将被调用两次 - 一次是通过gem,一次是通过显式上传方法。 –

+0

我更新了我的答案,并修改了默认行为。 –

+0

完美,谢谢! –

相关问题