我不确定Ruby on Rails中对象/部分对象的命名约定。这是一个例子:
我有一个User
对象
我有一个单独的Image
模型,只存储User
对象的图像
我还有一个单独的History
模型,只存储User
它会遵循Rails惯例将它们命名为UserImage
和UserHistory
模型吗?或者这不符合惯例?如果是这样,为什么不呢?
谢谢!
答案 0 :(得分:1)
这通常取决于您的申请中使用的其他名称,以及某种程度上的个人偏好。
我的偏好不是添加名称空间前缀,除非由于名称空间冲突而确实是必需的,或者由于我的应用程序具有类似命名的结构而令人困惑。此外,使用后缀来防止命名与不同区域中的类的冲突更多的是轨道惯例。例如,控制器都带有Controller
的后缀,带有Mailer
后缀的邮件,带有Decorator
的装饰器等等。
在你的情况下,我会坚持用户,图像和历史。除非你有其他类型的图像/历史模型,否则前缀图像和历史并没有真正获得任何东西,在这种情况下,最好是查看多态关系而不是命名空间前缀。
这主要是风格和可维护性问题。
答案 1 :(得分:-1)
如果您以这种方式命名模型,那么您将无法在模型之间建立关联。防爆。 UserImage模型将被视为单个实体,而不是用户和图像模型的关联。如果要开发此类关联,请使用HABTM关系。这就是为什么rails遵循“约定优于配置”。