什么是Ruby on Rails中的脚手架(Scaffold)?

618 阅读3分钟

你可能正在学习Rails,你读到你必须创建一个 "脚手架 "来启动你的Rails应用程序。

很简单!你可以使用。

你可以使用rails g scaffold 命令来完成这个任务。

但什么是 "脚手架"?

"脚手架是一种临时结构,用于支持工作团队,以帮助建设、维护和修理建筑物、桥梁和所有其他人造结构"。- 维基百科

翻译成Rails

脚手架是一组自动生成的文件,构成了Rails项目的基本结构。

这些文件包括

  • 一个控制器
  • 一个模型
  • 每个标准控制器动作的视图(索引、编辑、显示、新)。

一个新的路由。

还有一个迁移,以准备你的数据库。

让我们看一个例子!

如何使用Rails Scaffold命令

一个关于书籍的网站的项目支架的例子是这样的。

rails g scaffold books

你应该看到有很多文字在滚动,其中详细介绍了正在创建的文件。

这个例子创建了

  • ABooksController
  • 一个Book 模型
  • 一个新的resources :books 路由添加到你的config/routes.rb 文件中
  • 一组测试相关的文件
  • 查看app/views/books 下的文件(共五个)。

这是个很大的东西。

如果你想撤销这个脚手架,就在创建它之后,你可以使用以下命令。

rails d scaffold books

其中 "d "表示 "销毁"。

请记住,这将DELETE由脚手架过程中创建的文件。

现在

在你可以使用你的脚手架代码之前,你必须运行你的迁移程序来更新你的数据库模式。

使用rails db:migrate 命令。

如果没有错误信息出现,你就准备好了!你已经为你的新Rails应用程序,或者为一个需要新模型、视图和相应控制器的新功能建立了一个基本结构。

下一步

运行rails server

打开你的浏览器到localhost:3000/books ,你就可以看到结果了!

带有额外字段的Rails脚手架

在默认情况下...

你的模型只有时间戳字段,这意味着你能记录的关于你的书(或你正在使用的任何模型)的唯一信息是它们被创建或更新的时间。

这里是如何用额外的字段来搭建脚手架的

rails g scaffold books title:string author:string publication_year:integer

如果你像这样生成你的脚手架,你将有3个字段可以使用。

一个标题,一个作者,和一个出版年份。

这比仅仅拥有数据库的时间戳要有趣一些。

顺便说一下

这与我们用rails g migration 创建迁移时使用的语法相同。

生成特定组件

脚手架创建的东西你现在可能不需要或不想要。

但是Rails很好。

你可以使用rails g (g代表生成)命令来创建单个组件,比如控制器。

例子

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (创建模型+迁移)
  • rails g migration CreateBook title:string year:integer (只创建迁移)

使用脚手架命令的一大好处是,所有的文件都是用正确的命名规则创建的,这就避免了奇怪的错误信息。它也为你省去了手动创建这些文件的工作。

Btw...

删除那些你不打算使用的自动生成的文件被认为是一个好的做法。因此,在使用 "g控制器 "这样的生成器后,查看创建的文件列表并删除那些你不需要的文件。

总结

你已经了解了Ruby中的脚手架,所以你可以快速启动一个新的Rails应用程序来练习。

随着你学习的深入,你可能想放弃脚手架。

但你仍然可以在需要时生成单独的控制器、模型或视图文件。

谢谢你的阅读!🙂