Отказ от ответственности: хотя я спрашиваю в контексте приложения на Rails, я не говорю о помощниках Rails (то есть просматриваем помощников)
Допустим, у меня есть вспомогательный метод / функция:
def dispatch_job(job = {})
#Do something
end
Теперь я хочу использовать это из нескольких разных мест (в основном, контроллеров, но также и нескольких рабочих BackgrounDRb)
Какой предпочтительный способ сделать это?
Я могу представить две возможности:
1. Используйте класс и сделайте помощника статическим методом:
class MyHelper
def self.dispatch_job(job = {})
end
end
class MyWorker
def run
MyHelper.dispatch_job(...)
end
end
2. Используйте модуль и включите метод в любой класс, в котором мне нужна эта функциональность
module MyHelper
def self.dispatch_job(job = {})
end
end
class MyWorker
include MyHelper
def run
dispatch_job(...)
end
end
3. Другие возможности, которые я пока не знаю
...
Первый более похож на Java, но я не уверен, что второй действительно подходит для использования модулей Ruby.