2016-07-04 2 views
1

Ich verwende Rails 4.2.3. Ich habe app/Helfer erstellt/webpage_helper.rbWie rufe ich eine Helper-Modul-Methode von einem Rails-Service auf?

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 

Wie kann ich diese Hilfsmethode aus einem anderen Rails Dienst aufrufen (NICHT ein Controller)? Ich habe versucht,

doc = WebpageHelper::get_url(url) 

Aber das führt zu einem Fehler „nicht definierte Methode` GET_URL‘für WebpageHelper: Modul“.

Antwort

0

Es gibt zwei Möglichkeiten, wie Sie dies tun können. Fügen Sie WebpageHelper hinzu und verwenden Sie dann einfach die Methode get_url oder definieren Sie get_url als Modulfunktion.

module WebpageHelper 

    ... 

    module_function :get_url 
end 

and then you can use this like 
WebpageHelper.get_url 
Verwandte Themen