2013-02-19 48 views
0

我不確定Ruby on Rails中對象的相關/部分對象的命名約定。下面有一個這樣的例子:作爲另一個對象的一部分的模型/控制器的Ruby on Rails命名約定是什麼?

我有一個User對象

我有一個單獨的Image模型僅存儲User對象的圖像

我也有一個獨立的History模型,只存儲的動作User

它會遵循Rails約定將它們命名爲UserImageUserHistory模型?或者這不符合慣例?如果是這樣,爲什麼不呢?

謝謝!

回答

1

它通常取決於您的應用程序中使用了哪些其他名稱,以及某種程度上取決於個人偏好。

我的首選是不添加命名空間前綴,除非由於命名空間衝突而真正需要,或者由於命名結構與我的應用程序相似而導致混淆。此外,它更多地是使用後綴來避免命名與不同區域中的類的衝突的rails慣例。例如,控制器都帶有後綴Controller,後綴爲Mailer的郵件程序,帶有Decorator等的裝飾器。

在你的情況下,我會堅持用戶,圖像和歷史。 「前綴圖像」和「歷史記錄」並不能真正爲您帶來任何好處,除非您有其他類型的圖像/歷史記錄模型,在這種情況下,查看多態關係而不是命名空間前綴可能更好。

這主要是風格和可維護性的問題。

-1

如果您以這種方式命名模型,那麼您將無法開發模型之間的關聯。防爆。 UserImage模型將被視爲單個實體而不是用戶和圖像模型的關聯。如果你想開發這種類型的關聯使用HABTM關係。這就是爲什麼軌道遵循「慣例超配置」。

+0

還可以添加關聯。一個'用戶'仍然可以擁有'has_many:user_images'並通過'@ user.user_images'訪問它們。它根本不影響協會。 – Cluster 2013-02-20 16:17:41

相關問題