0

我不确定 Ruby on Rails 中与对象相关/对象的一部分的命名约定。下面是一个例子:

我有一个User对象

我有一个单独的Image模型,只存储User对象的图像

我还有一个单独的History模型,它只存储User

是否会遵循 Rails 约定将它们命名为UserImageUserHistory模型?还是这不符合惯例?如果是这样,为什么不呢?

谢谢!

4

2 回答 2

1

它通常取决于您的应用程序中使用的其他名称,并且在某种程度上取决于个人喜好。

我的偏好是不添加命名空间前缀,除非由于命名空间冲突而确实有必要,或者因为我的应用程序具有类似命名的结构而令人困惑。此外,使用后缀来防止与不同区域中的类发生命名冲突更像是一种 Rails 约定。例如控制器都以 为后缀Controller,邮件以 为后缀Mailer,装饰器以Decorator等为后缀。

在你的情况下,我会坚持使用用户、图像和历史。为图像和历史添加前缀并不能真正为您带来任何好处,除非您有其他类型的图像/历史模型,在这种情况下,最好查看多态关系而不是命名空间前缀。

这主要是样式和可维护性的问题。

于 2013-02-19T22:03:46.583 回答
-1

如果您以这种方式命名模型,那么您将无法在模型之间建立关联。前任。UserImage 模型将被视为单个实体,而不是用户和图像模型的关联。如果要开发这种类型的关联,请使用 HABTM 关系。这就是为什么 Rails 遵循“约定优于配置”的原因。

于 2013-02-20T05:05:46.737 回答