Uwaga: Chociaż Pytam w kontekście aplikacji Rails, mam nie mówić o Rails pomocników (tj zobacz pomocnicy)Jaki jest preferowany sposób używania metod pomocniczych w Ruby?
Powiedzmy mam metody pomocnika/funkcja:
def dispatch_job(job = {})
#Do something
end
teraz chcę użyć to z kilku różnych miejscach (głównie kontrolerów, ale także kilku pracowników BackgrounDRb)
Jaki jest preferowany sposób to zrobić?
mogę myśleć o dwóch możliwości:
1. użyć klasy i uczynić pomocnika metody statycznej:
class MyHelper
def self.dispatch_job(job = {})
end
end
class MyWorker
def run
MyHelper.dispatch_job(...)
end
end
2. użyć modułu i obejmują metodę do cokolwiek klasa Potrzebuję tej funkcjonalności
module MyHelper
def self.dispatch_job(job = {})
end
end
class MyWorker
include MyHelper
def run
dispatch_job(...)
end
end
3. Inne możliwości nie znam jeszcze
...
Pierwszym z nich jest bardziej podobny do Javy, ale nie jestem pewien, czy drugi jest naprawdę właściwe wykorzystanie modułów Ruby.
Dlaczego jest to, że lepiej niż statyczny sposób klasy? –
To jest dobre pytanie, myślę, że pójdę z klasą statyczną lub jakąś biblioteką Common dla losowych metod niezależnych, które będę potrzebować w każdym miejscu i rozszerzając kontroler aplikacji, gdy potrzebuję moich metod, aby mieć dostęp do danych kontrolera (jak params i tym podobne). –