基本上,我正在編寫一個與許多熱門網站(Facebook,Twitter,Youtube等)接口的網站。我的主要目標是相同的,但是我實現我的目標的方式與我支持的每個站點都不同,因爲它們的佈局不同,並且我必須根據其網站的運行情況編寫我的請求。如何模塊化Rails代碼?
用戶選擇他們想要使用我提供的服務的特定網站(即,他們是否希望將其用於Facebook或Twitter等)。他們只能根據我的服務請求選擇這些網站中的一個。
我想知道當Rails模塊化(這是我的第一個Rails項目,儘管我已經接觸過其他語言),好的設計主體/實踐是什麼。基本上,我看到它的方式是,用戶將他們的請求提交給我的控制器,它將檢查他們選擇的站點。然後,我的控制器將「加載」一個特定的模塊(即如果他們選擇了Facebook,它將加載facebook模塊),其中將包含處理Facebook請求的所有代碼。然後它將以任何必要的方式調用該代碼,並將結果提供給用戶。
所以基本上,我的問題是真正歸結爲有關Rails的最佳實踐和設計原則。您認爲在這種情況下分離我的代碼的好方法是什麼?我是否應該爲每個支持的網站開設一個班級(臉書,推特等)?這是我能想到的唯一真正的選擇(因爲我對Rails不是很熟悉),但是我確信會有更好的選擇,所以我可以限制代碼冗餘的數量,因爲每個類的目標將是相同的,它只是一個不同的技術來獲得目標(即方法名稱將是相同的每個類,等)。
謝謝!
謝謝steenslag,這聽起來很完美:)!如果有人知道這種事情會在軌道中出現,我就全部定下來。我唯一的猜測是在/ lib目錄中,但我可能是錯的。 – b0xxed1n 2011-06-01 14:35:45