如何从 Rails 服务调用辅助模块方法?

How do I invoke a helper module method from a Rails service?

我正在使用 Rails 4.2.3。我创建了 app/helpers/webpage_helper.rb

require "resolv-replace.rb"
require 'open-uri'

module WebpageHelper

  def self.max_attempts
    3
  end

  def get_url(url)
    attempts = 0
    begin
      doc = Nokogiri::HTML(open(url))
    rescue => e
      puts "error: #{e.message}"
      attempts = attempts + 1
      if attempts <= max_attempts
        retry
      end
    end
  end

end

如何从另一个 Rails 服务(不是控制器)调用这个辅助方法?我试过了

doc = WebpageHelper::get_url(url)

但这会导致错误“undefined method `get_url' for WebpageHelper:Module”。

有两种方法可以做到这一点。要么包含 WebpageHelper 然后只使用 get_url 方法,要么将 get_url 定义为模块函数。

module WebpageHelper

  ...

  module_function :get_url
end

and then you can use this like
WebpageHelper.get_url