免责声明:虽然我问Rails应用程序的情况下,我不谈论Rails的helper(即视图助手)在Ruby中使用助手方法的首选方式是什么?
比方说,我有一个辅助方法/功能:
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的模块。
为什么是更好比静态类的方式? – 2010-04-25 09:52:56
这是一个很好的问题,我想我会随同静态类或某种通用库一起使用随机自包含的方法,我需要遍布整个位置,并在需要我的方法访问控制器数据时扩展应用程序控制器(如params等)。 – 2010-04-25 09:56:57