免責聲明:雖然我問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