您所在的位置: 首页>>读书频道>>设计开发>>其它开发>>

2.1.3 使用代码生成器生成支架

http://book.51cto.com  2008-04-02 15:06  李刚 郭秋霞  电子工业出版社  我要评论(0)
  • 摘要:《Ruby on Rails敏捷开发最佳实践》第2章向读者示范如何开发一个简单的Rails应用,这个Rails应用是一个简单的留言系统。本文讲了使用代码生成器生成支架。
  • 标签:Rails  代码生成器  Ruby on Rails敏捷开发最佳实践

2.1.3  使用代码生成器生成支架

scaffold是Rails提供的一个功能十分强大的代码生成器,它可以生成一个简单应用雏形,这个应用雏形为某个实体生成基本的C(Create)R(Read)U(Update)D(Delete)操作,这个雏形应用就被称为支架。
使用scaffold代码生成器非常简单,即在DOS窗口进入Rails应用所在的路径下,然后执行如下格式的命令:

ruby script/generate scaffold 模型名 (控制器名)    

上面格式的命令中,模型名为必选项,控制器名是可选项。

如果省略控制器名,则表示生成指定模型(Model)的基本的CRUD操作。所谓模型(Model),就是对应一个持久化实体的名称。Rail约定:数据库中的表对应模型中的一个类。例如数据库里有一个users数据表,而系统就可以对应一个User Model。这里,我们又看到了约定优于配置的好处,这些约定使得我们不必关心Rails的底层实现,只要按照Rails的约定,就能很容易地将数据层和持久层映射起来。必须指出的是,使用scaffold代码生成器时,Rails会检测系统所配置的数据库里是否包含Model所需的数据表。

如果指定控制器名,则可以为指定的控制器生成关于指定Model的基本的CRUD操作。

提示  正如前面介绍的,当我们使用rails命令来创建一个Rails应用时,rails命令为script路径下生成了很多脚本,其中generate就是一个代码生成器脚本,用它可以自动生成很多应用的框架代码。

现在,使用支架来为我们的firstApp应用生成支架。因为我们刚才为应用创建了一个users数据表,根据Rails的约定,它将会对应一个User Model。因此,我们可以为User Model使用scaffold代码生成器,即在DOS窗口进入Rails应用所在的路径下,执行如下命令。

ruby script\generate scaffold User User   

在DOS窗口中看到的执行结果如图2.4所示。

图2.4  使用scaffold代码生成器 


由图2.4可看到,使用scaffold代码生成器,生成了一系列的相关文件或文件夹。其中,自动在app/models路径下为我们生成了user.rb这个Model文件;在app/controllers路径下生成了Model对应的user_controller.rb控制器文件;在app/views路径下创建了一个user文件夹,该文件夹用于存放User控制器调用的所有视图文件。

在firstApp应用的根路径下双击start.cmd批处理文件,启动WEBrick服务器,然后在浏览器的地址栏输入http://localhost:3000/userhttp://127.0.0.1:3000/user(假定读者在本机启动Rails应用),将会在浏览器中看到list页面。该页面用于列出所有用户对象,因为我们的数据库中目前没有任何的用户,所有页面中没有列出任何用户。单击“New user”链接,即可进入添加用户的页面,如图2.5所示。

由图2.5可知,由scaffold生成的添加页面是十分简单和不美观的。毕竟,这只是Rails为我们生成的最基本的视图模板。不过没关系,本章的后面会向读者介绍如何定制个性化视图。

在图2.5所示的页面中输入数据后提交,将会重定向到list页面,并在该页面上显示成功信息。浏览器中将会看到如图2.6所示的效果。

图2.5  使用scaffold生成的添加用户页面  
    

图2.6  使用scaffold生成的用户清单页面 

从图2.6可看出,该页面中除“New user”链接之外,还包含了“Show”、“Edit”和“Destroy”链接,这正是对应scaffold代码生成器的基本功能:生成对特定Model的CRUD操作。这对于快速迭代开发是非常有帮助的,还可以让客户在非常短的时间内看到系统的雏形。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
深入Vista应用程序开发
Ruby on Rails 社区网站开发
ASP.NET从入门到精通
Java完全自学宝典
JavaScript完全自学宝典
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有