如何从Rails服务调用帮助程序模块方法?

时间:2016-07-04 02:33:59

标签: ruby-on-rails-4 methods module helper

我正在使用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)

但是这会导致错误“未定义的方法`get_url&#39; for WebpageHelper:Module“。

1 个答案:

答案 0 :(得分:0)

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

module WebpageHelper

  ...

  module_function :get_url
end

and then you can use this like
WebpageHelper.get_url