我有一种方法,我已经开始在多个模型中使用,用于web垃圾处理,在哪里保存它最好?我应该把它放在应用程序控制器,应用程序助手中吗?我不知道放在哪里好让多个模特使用?

  def self.retryable(options = {}, &block)
    opts = { :tries => 1, :on => Exception }.merge(options)

    retry_exception, retries = opts[:on], opts[:tries]

    begin
      return yield
    rescue retry_exception
      retry if (retries -= 1) > 0
    end

    yield
  end

最佳答案

将retryable.rb放入lib/

module Retryable
  extend self

  def retryable(options = {}, &block) # no self required
  ...
  end
end

使用它:
Retryable.retryable { ... }

或包含命名空间:
include Retryable
retryable { ... }

10-04 15:15