2016-03-26 128 views
1

我正在研究rake task,它根據提交給外部數據庫(MS SQL)的查詢在本地數據庫中創建新記錄。連接,查詢和記錄創建發生在我創建的稱爲ExternalDatabaseConnector的助手中。 Rake任務只是簡單地調用方法,並以controller的形式運行。實例方法與類方法對於輔助類 - Ruby,Rails

我的問題是在我的助手類的方法(我已經establish_connectionexecute_querycreate_hashstore_records)應在self(即是類方法)呼籲或每個被我幫助的實例叫什麼名字?

我在想只會有一個連接,並且rake任務只會按照其時間表觸發一次,並且不需要創建我的幫助類的單獨實例?

回答

1

如果您不需要自定義每個實例 (通過initialize和實例變量)的狀態,則可以改爲使用類方法 。如果你使用類方法,你可以使你的Class一個 Module它會有同樣的效果。

如果您在編程時使用純粹的功能範例,那麼您不會使用實例方法 。相反,你會通過所有你需要的數據作爲 參數。我不推薦這種方法,因爲在許多情況下,OOP只是簡化了事務 ,但對於這種情況,類方法對我來說很有意義。 函數式編程很有用(方法如map,reduceproc shorthand), ,但我沒有看到任何理由使用它,而是使用它的而不是OOP的