规划Rails应用程序的指南。从理念到原型?

时间:2013-08-29 22:23:38

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2 entity-relationship

胶水......

上个学期我在编程课程中教过 Ruby ,一些关于实体关系图,以及一些 Dataflow 。 我最近一直在进入 Ruby on Rails ,我想利用我积累的一些新手知识来开发一个基于简单想法的网站。 但是,我似乎无法找到 Ruby on Rails 与我上一学期的知识之间的粘合剂。在某些特定领域,我陷入困境并不断混淆:

如何将我的图表中的实体转换为Rails思维? 什么是命名约定甚至是翻译 - 是 Controller 的实体?还是模型

让我们想象一下,我有以下愿望:

网络应用程序是一个在线列表,显示从网站用户窃取的汽车。 用户(实体?)应该能够注册用户信息(属性?),填写一个表格,创建一个具有唯一性的CarPost(实体?) id和reg。在他自己的帖子概述CarPostView( View ?)中可以私下查看的号码。

如果他/她的汽车被盗了! (敲木头),用户应该能够激活动作?),以显示 CarPost 在网站的首页被盗,可供所有访问者搜索和阅读。如果汽车返回用户用户应该能够停用 CarPost 并让其他人再次看不到它,但保留它在他的帖子概述页面。

在我脑海中,:

  • 用户,需要型号吗?
    • 用户有属性,可以通过查看文件访问它们吗?
  • CarPost,需要一个型号?
    • CarPost有属性,可以通过View文件访问它们吗?

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

任何指导意见。

1 个答案:

答案 0 :(得分:1)

来自Wikipedia

  

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

你的问题:

  

什么是命名约定甚至翻译 - 是控制器的实体?模型?

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


根据您的说明,UserCarPost将作为模型存在(尽管我倾向于重命名CarPost Car之类的内容。对于每个模型,您将在数据库中同时拥有userscars表。

在许多情况下,图表中的“操作”将通过Rails控制器中的操作进行处理。这是MV * C *中的 C - 业务逻辑所在的层。一个很好的例子是在您的应用程序中“激活”Car的列表。这可能会采用CarsController的{​​{1}}行动。


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

对于你关于ER模型的问题,这是一个过于简化的MVC解释。如果你有兴趣深入潜水,我建议谷歌搜索MVC - 互联网上充斥着有关它的信息。


你在评论中提到你已经完成了很多Hartl教程。我自己从来没有读过它,但是知道它对于刚开始使用Rails的人来说非常受欢迎。我觉得有点难以相信你已经完成了教程中的大部分工作,并且无法连接你的ER模型和各种Rails框架之间的点。这不是批评,而只是指出你应该从教程中获得比你似乎更多的东西 - 另一个可能是明智的。

初学者的另一个优秀资源是官方 Rails Guides