如何从 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
我正在使用 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