命名空间模型在Rails应用程序中

最近我和一位同样是RoR开发者的朋友进行了讨论。 我们讨论了如何管理Rails模型。 就我个人而言,我喜欢仅在默认名称空间中保留根模型(例如User,Article,Bill等),并且依赖模型会以root的名称进入一个模块(例如User :: Profile,User :: Activity)他们与之相关的模型。

另一方面,我见过很多像默认命名空间中有100个模型的项目,比如user_profile,user_activity等等。 从Java(Spring)开发的角度来看,java社区倾向于将包装类组织起来,并将它们按逻辑分组,这让我觉得非常有吸引力。

所以问题是:模块中的模型分组是否存在任何缺点(关系定义中的extra:class_name除外),以及人们通常不这样做的具体原因?


虽然命名空间有其优点,但它确实需要在整个模型中添加例外。 Foo :: Bar假设一个表格名称的bars ,同样bar_id用于关联,而您可能更喜欢使用foo_barsfoo_bar_id来代替。

如果你真的对此感到强烈,你可能想看看是否有一个附件为你解决这个问题,或者实现你自己的扩展。

我使用名称空间的唯一情况是用于第三方应用程序的附加组件,我不想声明根级模型名称,因为这样做会很烦人。 在这种情况下额外的努力是值得的。

如果您看到100多个没有任何分组的模型文件让您感到困扰,您可能会同样看到100多个没有分组的表格,这通常是您无法解决的问题。

控制器可以很自然地进行分组,但是模型并不容易适应,至少不需要股票ActiveRecord。

链接地址: http://www.djcxy.com/p/58553.html

上一篇: Namespacing models in a Rails application

下一篇: INLINE Pragma in combination with type classes