如何考虑更复杂 Rails 应用程序中的模型和关系?

How to think about models and relationships in more complex Rails applications?

我在 Rails 上学习 Ruby 已经有一段时间了,并且已经构建了几个玩具应用程序。我参加了很多 classes/courses(即 Hartl、Code School、Udemy 等)。现在我正在从事一个相当复杂的宠物项目 - 许多模型和关系。

这是我的问题:我如何根据模型和关系来考虑复杂的应用程序?在我看来,应该有一些可视化的方式来对所有这些进行建模,但我在我所采取的任何 类 中都没有看到任何关于此类建模的讨论。当然,Rails 指南中有非常简单的图表,但我如何将其扩展到更复杂的东西?或者,我是不是把它弄得太复杂了?我是否只是开始编码模型和关系,然后看看它会把我带到哪里?看来这种特别的方法很容易把我逼到一个角落,可以说,如果我把自己逼到一个角落,我将不得不从头开始。

是否有可以帮助我的工具或博客文章?

(注意:我也在 Reddit 上发布了这个问题。Com/r/Rails 在 https://www.reddit.com/r/rails/comments/7c9zbf/how_to_think_about_rails_web_application/

听起来您想要的是模式设计器。我将 link 放在这个 post 的底部。模式设计器将允许您可视化应用程序中的所有关系,并查看一个模型如何连接到另一个模型。它们对于编写复杂的数据库查询非常有帮助。我附上了一个相当简单的设计示例,只是为了让您了解它们 do.You 还可以添加模型在设计中具有的所有列,我通常更多地使用它来处理关系。 http://ondras.zarovi.cz/sql/demo/

完全基于我的 experience/opinion...

您最终会在构建应用程序时多次更改数据库设计。

我会从白板开始,然后考虑使用 @aram 提到的模式设计器。

看到大图后,只需从今天的功能所需的关系开始。您可以继续参考原始设计,这样您就可以看到更大的图景,但您不想在需要之前过度膨胀您的架构,因为它会发生变化。

在您编写一些代码并建立这些关系后,您可以使用 rails-erd gem 以编程方式生成您的应用架构。