2011-09-11 87 views
0

我有一個Location#description方法,返回一個(真的)長字符串。該字符串是一種人類可讀的描述,它是根據Location屬性的值生成的。但是,這段代碼很長且很複雜,並且在我的模型中放了很多「非業務」邏輯。將Rails模型的複雜顯示邏輯放在哪裏?

什麼是最好做的?把所有這些邏輯都放在助手中,或者創建一個LocationPresenter類?如果我創建主持人,那麼關於這樣做的一些準則是什麼?我應該使用Location初始化它還是可以使用attribues散列?

回答

0

考慮將其重構爲一個模塊,並將其包含到相應的模型中 - 即如果它具有任何業務邏輯組件。另外看一下helper_methods(在控制器和視圖層都可以),如果不是隻有演示文稿的宏可以添加爲助手。

事實上,你稱之爲「複雜」,並意識到它需要移出你的模型,這讓我想知道它是否可以在一些重構中與Rail的MVC模式更緊密地聯繫在一起。

相關問題