免责声明:虽然我是在谈论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模块的适当用法。