2013-02-19 51 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

相关问题