2011-02-26 6 views

答えて

1

これを機能させるために特別な操作を行う必要はありません。

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

Attachment.first.delay.upload 

PS:私は知らないあなたはまた、独自の機能やモデルでこれをラップすることができますしたい場合は

ScribdFu.new.delay.upload_to_scribd 

:たとえば、あなたは、おそらくこのような何かを行うことができますScribdFu gemへの呼び出しの構文が正しいが、この方法で遅延メソッドを使用して遅延ジョブをキューに入れることができるはずです。

module ScribdFu 
    module InstanceMethod 
    handle_asynchronously :upload_to_scribd 
    end 
end 

これは、任意の時間は、この関数が呼び出されることを意味します:、あなたがあなたのコメントに何をしたい達成(設定/初期化子/ delay_scribd.rb)というファイルを作成し、そこに以下を追加するには

メソッドの遅延を明示的に呼び出すことなく、遅延ジョブで呼び出されます。 end

+0

ご回答ありがとうございます。私は、upload_to_scribdへのすべての呼び出しを、明示的な呼び出しではなく、delayed_jobで処理することを望みます。その理由は、宝石にはupload_to_scribdを呼び出すafter_saveメソッドが追加されているからです。これは特に遅延したいものです。私は、after_save:あなたの答えのメソッドと一緒にアップロードするだけで明示的に設定できますか?これはScribdFuからのデフォルトafter_saveをオーバーライドしますか?そうでない場合は、どのようにこれを無効にすることができますか?オーバーライドされていない場合、upload_to_scribdは2回呼び出されます.1回はgemによって、もう一度は明示的なアップロードメソッドによって1回呼び出されます。 –

+0

私は、デフォルトの動作を変更するための解決策で自分の答えを更新しました。 –

+0

パーフェクト、ありがとう! –

関連する問題