我是Ruby on Rails的新手。在开始构建类似商店的web应用程序之前,我有一些问题需要解决。我遵循了《使用Rails进行敏捷Web开发》一书中的说明,所以我决定也使用sqlite。。。
但我已经通过ER图表示了这个场景,现在我不知道如何将其付诸实践。
在本书的前几章中,它使用scaffold命令创建表"Product"。但是这个命令为我想要表示的每个表创建模型、视图、控制器和测试。
这是正确的方式吗?或者,在我开始创建我需要的mvc之前,有没有一种方法可以构建我所有的表?
试试Ruby On Rails:指南
http://guides.rubyonrails.org/getting_started.html
在我看来,它通常比敏捷书更容易理解。
创建表的最简单方法是使用Rails迁移。
使用相关模型、视图和控制器创建迁移的最简单方法是:
rails generate scaffold Product
该命令将打印它正在执行的操作。看看那些文件。
如果你有很多表,是的,典型的方法是生成许多支架,例如:
rails generate scaffold User
rails generate scaffold Product
rails generate scaffold Company
rails generate scaffold Invoice
...
在您的评论中,您询问了产品类型表。对于这样的表,是的,可以跳过脚手架(例如,因为您不需要控制器),而只生成迁移:
rails generate migration TypeOfProduct
请注意,Rails使用"类型"这个词会做一些奇怪的事情。当我做这样的表格时,我发现从主要单词开始,然后像这样使用单词"种类"更容易:
rails generate migration ProductKind
简短回答:是,这是正确的方法。
更长的答案:通常你想设计一个模型,然后设计下一个,所以通常这是正确的方法。若创建一个没有模型的表,那个么表的纯存在就并没有价值。
如果只想创建表而不想创建模型,则可以创建迁移。只需使用./script/rails generate migration CreateSomeTable
。
在任何情况下,您都可以忽略当前不需要的已创建文件。只要让它们留在原地,如果你愿意的话,就专注于所有的表(迁移)。
脚手架为您提供了一个处理资源(如用户、帖子、文章等)的良好起点。它生成模型、视图和控制器,然后您可以专注于修改它以满足您的需求。
实体关系图为构建系统提供了一个很好的路线图。你不应该担心一次把20张桌子砸进应用程序。相反,您应该一次一个地构建它们(通过脚手架或用于模型和迁移的其他rails生成器),对它们进行处理,直到它们正确为止,然后一次构建一个其他表和关系。
从小处着手,你的工作效率会非常高。大规模的工作,你会浪费很多时间试图找出你在一次大规模的操作中哪里出了问题。