什么是作为另一个对象的一部分的模型/控制器的Ruby on Rails命名约定?

时间:2013-02-19 21:54:23

标签: ruby-on-rails ruby-on-rails-3

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

我有一个User对象

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

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

的操作

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

谢谢!

2 个答案:

答案 0 :(得分:1)

这通常取决于您的申请中使用的其他名称,以及某种程度上的个人偏好。

我的偏好不是添加名称空间前缀,除非由于名称空间冲突而确实是必需的,或者由于我的应用程序具有类似命名的结构而令人困惑。此外,使用后缀来防止命名与不同区域中的类的冲突更多的是轨道惯例。例如,控制器都带有Controller的后缀,带有Mailer后缀的邮件,带有Decorator的装饰器等等。

在你的情况下,我会坚持用户,图像和历史。除非你有其他类型的图像/历史模型,否则前缀图像和历史并没有真正获得任何东西,在这种情况下,最好是查看多态关系而不是命名空间前缀。

这主要是风格和可维护性问题。

答案 1 :(得分:-1)

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