2016-07-21 37 views
7

Używam Rails 4.2.4. Jak zdefiniować metodę pomocnika (prywatnego) w module? Mam ten modułJak zdefiniować metodę pomocnika w moim module Rails?

module WebpageHelper 

    def get_url(url) 
    content = get_content(url) 
    .. 
    end 

    def get_content(url) 
    … 
    end 

    module_function :get_url 

end 

Nie chcę metoda „get_content” być publicznie dostępne, ale z powyższym kodzie pojawia się błąd

Error during processing: undefined method `get_content' for WebpageHelper:Module 

W jaki sposób prawidłowo określić prywatną pomocnika metoda w moim module?

Odpowiedz

1

Myślę, że najlepszym sposobem (i głównie w jaki sposób istniejące biblioteki są zapisane) zrobić to, tworząc klasę w module, który zajmuje się całą logiką, a moduł po prostu zapewnia wygodną metodę.

Dokumenty tutaj;

Private method

Albo zobaczyć Here na kilka ciekawych przykładów np class << self opcja.

+0

Potrzebuję tutaj przykładu kodu, ponieważ jeśli dobrze cię rozumiem, mówisz, stwórz klasę za pomocą metody pomocniczej, która udostępni publicznie tę metodę, co jest dokładnie tym, czego próbuję uniknąć. Ta metoda będzie używana wyłącznie w tym module. –

+0

Czy widziałeś ten przykład http://stackoverflow.com/a/424569/6266499? – dodo121

+0

Więc metoda tej wewnętrznej klasy może być dostępna tylko w samym module? –