0

胶水..

上学期我在编程课上学习了Ruby,一些关于实体关系图和一些数据流。我最近一直在研究Ruby on Rails,我想利用我积累的一些新手知识,基于一个简单的想法开发一个网站。但是,我似乎找不到Ruby on Rails和我上学期的知识之间的粘合剂。在某些特定领域我被卡住并不断感到困惑:

如何将我的实体从图表转换为 Rails 思维?什么是命名约定,甚至是翻译——实体是控制器吗?还是模特

假设我有以下愿望:

该网络应用程序是一个在线列表,显示从网站用户那里被盗的汽车。用户(实体?)应该能够使用用户信息(属性?)进行注册填写一个表格,该表格将创建一个具有唯一 ID 和注册的 CarPost(实体?)。在他自己的帖子概览 CarPostView(查看?)中可以私下查看的编号。

如果他/她的车被偷了!(敲木头),用户应该能够激活操作?)该CarPost在网站首页显示为被盗,可供所有访问者搜索和阅读。如果汽车归还给用户用户应该能够停用CarPost并使其对其他人再次不可见,但将其保留在他的帖子概览页面中。

在我的脑海中,:

  • 用户,需要模型吗?
    • 用户有属性,通过视图文件访问?
  • CarPost,需要模型吗?
    • CarPost 有属性,它们是通过 View 文件访问的?

然后我需要创建一些“动作?” 可以激活/停用CarPosts并在它们之间建立一些关系的地方。我认为关系在 Rails中被称为关联,请纠正我 - 请 - 如果我错了?那些应该在我的模型中?

任何指导表示赞赏。

4

1 回答 1

1

来自维基百科

在软件工程中,实体关系模型(ER 模型)是一种用于以抽象方式描述数据库的数据模型

你的问题:

什么是命名约定,甚至是翻译——实体是控制器吗?模型?

Rails *(和所有其他 * M *VC 框架)* 中的模型层是您和数据库之间的抽象层。每个模型通常是一个“实体”,并且部分关系由模型上的关联/关系来描述。


根据您的描述, aUserCarPost将作为模型存在(尽管我倾向于重命名CarPost类似Car。对于这些模型中的每一个,您都将在数据库中拥有一个users和一个表。cars

在很多情况下,图中的“动作”将通过 Rails 控制器中的动作来处理。这是MV* C * 中的C - 您的业务逻辑所在的层。一个很好的例子是在您的应用程序中“激活” aCar的列表。这可能位于 aCarsControlleractivate操作中。


“视图”只是 HTML 模板,它们是M* V *C中的V。这是用户看到的并将与之交互的内容,以便告诉 Rails 他们想要做什么。再次按照您的示例,您可能有一个视图来显示用户的汽车(通常是show您的操作CarsController,并且在同一个视图/模板上具有指向您的activate操作的链接CarsController

诚然,就您关于 ER 模型的问题而言,这是对 MVC 的过度简化的解释。如果您有兴趣深入研究,我建议您使用谷歌搜索 MVC - 互联网上充斥着关于它的信息。


您在评论中提到您已经阅读了很多 Hartl 教程。我自己从未读过它,但知道它在这里很受刚开始使用 Rails 的人的欢迎。我很难相信您已经完成了本教程的大部分内容,并且无法将您的 ER 模型与 Rails 框架的各个部分联系起来。这不是批评,而只是指出您应该从本教程中得到比看起来更多的东西——再试一次可能是明智的。

另一个适合初学者的优秀资源是官方的Rails 指南

于 2013-08-29T22:49:21.050 回答