我在app/models/user.rb中有一個用戶模型。我的用戶類有很多與外部服務Intercom有關的操作。現在我有一堆方法,如register_intercom_user
,update_intercom_data
,ping_intercom
等,所有這些都與用戶對象有關。重構模型的部分
我有幾個選擇:
- 創建這些方法的混入(最簡單的選項)。但後來我污染了我的用戶名空間。
- 使用
def new(user)
在我的lib/dir中創建一個intercom.rb文件。這是一種痛苦,因爲它離User類很遠,並不意味着耦合。 - 創建一個應用程序/模型/用戶/ intercom.rb與
class User::Intercom; def new(user)...
。看起來更正確,因爲它顯示了與用戶模型的耦合,但我還沒有在其他項目中看到過這種模式。
我是不是在想什麼?什麼是正確的模式呢?
我的對講機實際上確實需要訪問我的用戶對象的許多屬性 - 有耦合。在這種情況下,我覺得寶石是不合適的。 – Larry
你不能從用戶模型中提取你需要的東西嗎?也許有一天你會想要另一個模型來處理你的對講外部服務。 –