4

遅延ジョブ モデルにいくつかのカスタム メソッドを追加したいと考えています。

などの余剰分が欲しい...

def status
  return "errored" unless self.last_error.blank?
  return "waiting" if self.locked_at.blank?
  return "running" unless self.locked_at.blank?
  return "blerg" if some.other.things...
end

...遅延ジョブクラスで。

どうやってこのように拡張するのだろうと思っていました。

ありがとう!

4

1 に答える 1

3

クラスDelayed::Jobですか?Ruby ではいくつかの方法でクラスにメソッドを追加できますが、おそらく最も簡単な方法は次のとおりです。

config/initializers/delayed_job.rb

class Delayed::Job
  def status
    return "errored" unless self.last_error.blank?
    return "waiting" if self.locked_at.blank?
    return "running" unless self.locked_at.blank?
    return "blerg" if some.other.things...
  end
end

これはクラスを上書きするように見えるかもしれませんが、実際にはクラスが既にロードされている場合はメソッドを追加するだけです..

于 2013-03-22T21:05:53.033 に答える