gpt4 book ai didi

ruby-on-rails - Rails 应用程序中的命名空间模型

转载 作者:行者123 更新时间:2023-12-04 12:35:33 26 4
gpt4 key购买 nike

我最近与我的一位 friend 进行了讨论,他也是一名 RoR 开发人员。我们讨论了应该如何管理 Rails 模型。就我个人而言,我喜欢在默认命名空间中只保留根模型(例如 User、Article、Bill 等),而依赖模型会转到具有根名称的模块(例如 User::Profile、User::Activity)它们关联的模型。

另一方面,我看到很多项目在默认命名空间中有 100 个模型,称为 user_profile、user_activity 等。从 Java (Spring) 开发来看,java 社区倾向于将类组织在包中,并将它们按逻辑分组,我觉得这很吸引人。

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

最佳答案

尽管命名空间有其优势,但它确实需要在整个模型中添加异常。 Foo::Bar 假定表名 bars同样bar_id用于关联,而您可能更喜欢 foo_barsfoo_bar_id改为使用。

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

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

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

Controller 很自然地适合分组,但模型并不那么容易适应,至少不能使用现有的 ActiveRecord。

关于ruby-on-rails - Rails 应用程序中的命名空间模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com