Ruby on Rails Tutorial (Michael Hartl)中文翻译第二章 演示程序 (2)

本文介绍了Rails框架中用户模块的开发流程,涵盖了用户资源的各种操作,如创建、读取、更新和删除,并通过实例展示了如何实现这些功能。
(接前面)
[quote]
Box 2.1 Rake
在Unix系统上,make工具在执行源代码上有着非常重要的作用,非常多的电脑黑客常输下面的代码,都记忆到肌肉中了。。。(可以这样翻译吧。。。muscle memory)
$ ./configure && make && sudo make install
通常这个使用与在unix(包括linux和Mac OS X)底下编译源码;

rake可以说是ruby的make工具,他是用ruby写的类似make的语言或者说是工具;rake在rails里的运用非常广泛,特别是在开发有数据库支持的web程序中用于大量小任务的管理;
rake db:migrate命令可能是最经常使用到的,但是这只是其中之一,你可以运行
$ rake —T db
的命令来查看rake命令中关于数据库的小任务;
命令
$ rake —T
可以查看所有可用的任务;
出现的列表可能让人觉得恶心,但是不要担心,现在你不必要知道列表中所有项(或者大部分)的意思,学完本书后,你会知道里面所有重要的任务项;
[/quote]
[size=medium]2.2.1 用户模块开发[/size]
打开项目的根目录,http://localhost:3000/ 将会如图1.3(第一章的图。我挪过来了)所示的显示rails默认的根目录,

[img]http://dl.iteye.com/upload/attachment/367806/d7bba2bc-be01-3135-a5c6-441712dc19fb.png[/img]
图1.3

在生成User的资源的时候,我们也创建了很多的页面,用于操作这个用户;
例如,用于列出所有用户的 “/users”页面,用于创建新用户的“/users/new”页面等,
本节剩下的部分会用来快速的访问并解说这些页面,随着我们的进行,我们可以把页面和URL的关系列在下表中,
[table]
|URL| Action| Purpose|
|/users |index |page to list all users|
|/users/1| show |page to show user with id|
|/users/new| new |page to make a new user|
|/users/1/edit| edit |page to edit user with id |
[/table]
Table 2.1: 用户资源和URL之间的关系对照
我们从列出所有用户的index 页面开始吧,和你想的一样,一开始是什么都没有,如图2.4所示,
[img]http://dl.iteye.com/upload/attachment/368100/9187441f-a73a-367b-b2e6-e1ba2b5cd785.png[/img]
图 2.4: 初始状态下的index页面(/users).
我们通过"users/new"页面来创建新的用户,如图2.5所示
[img]http://dl.iteye.com/upload/attachment/368103/e2c436e2-53d1-3518-a4e2-53c6a9c13506.png[/img]
图 2.5: 创建用户页面 (/users/new).

我们可以在页面中输入用户name和email的值,然后点击Create按钮。
成功之后呢会跳向show页面,如图2.6所示,(绿色的欢迎信息是成功创建后flash的信息,我们将在8.3.3中学习它)
[img]http://dl.iteye.com/upload/attachment/368106/eb735daa-d41b-3ca0-ae7f-78a6efd77ad4.png[/img]
图2.6,显示一个用户信息的页面(/users/1)
注意此时的URL是 “/users/1”,你可能想到,那个1个就是代表图2.2中用户的id属性。
在7.3节中,这个页面就会变成用户的详细信息页。
我们通过访问edit页面来修改用户信息,如图2.7所示,我们修改信息后点击更新按钮。在演示程序中,我们可以修改用户信息,我们将在第六章中详细的介绍,这些用户的信息是被存储在数据库中的。我们将会把添加编辑用户的功能加入第10.1节的示范程序中。

[img]http://dl.iteye.com/upload/attachment/368170/2cce9343-7ec9-367f-8963-2a103139a9ff.png[/img]
图2.7 用户编辑页面(/users/1/edit).
[img]http://dl.iteye.com/upload/attachment/368172/138b1b17-0228-3d2a-b60a-96f90a2df1ea.png[/img]
图2.8 用户更新成功页面.
现在我们可以通过new页面填入和提交信息再创建一个用户;所以,在index页面中就会如下图2.9所示。在第10.3节中巍峨哦门将开发一个更精致index页面来列出所有用户。

[img]http://dl.iteye.com/upload/attachment/368179/89b60b5b-537a-3ef9-a146-bb217c4916e8.png[/img]
图2.9 加入了第二个用户的index页面(/users).
在演示了如何创建,显示,修改单个用户之后,我们将要看看如何删掉他们。你必须验证下图中用于删除第二个用户的链接是正确的。如果它不能使用,首先应该保证你的浏览有把javascript打开,Rails用JavaScript来发送删除用户的请求的。
我们将会把添加删除用户的功能加入到第10.4节的示例程序。在一个管理用户的类中小心的使用它。
[img]http://dl.iteye.com/upload/attachment/368196/01cf1ae1-3a89-38e5-800b-a36db253baf0.png[/img]
图2.30 删除一个用户
[size=medium]2.2.2 上节操作的MVC应用[/size]
现在我们基本完成了用户资源,让我们用一个过程来讲述第1.2.6中提到的MVC模式,这个模式可以只是浏览器上普通的一次点击。例如访问user的index页面“/users”;
[img]http://dl.iteye.com/upload/attachment/368202/23d6b46a-2b50-3cda-8352-732936b18ccc.png[/img]
图2.11,Rails中MVC的详细图解
上表中个步骤对应:
[list=1]
[*]The browser issues a request for the /users URL.
浏览器发送请求/users
[*]Rails routes /users to the index action in the Users controller.
Rails的路由组建分析它为对应users 控制器,index 的方法。
[*]The index action asks the User model to retrieve all users (User.all).
index通过User.all方法请求用户模型查找所有的用户。
[*]The User model pulls all the users from the database.
User模型从数据库提取出所有需要的用户。
[*]The User model returns the list of users to the controller.
User模型返回用户列表给控制器。
[*]The controller captures the users in the @users variable, which is passed to the index view.
控制器将这些用户注入@users的类变量中。该变量将会被传到视图中使用。
[*]The view uses Embedded Ruby to render the page as HTML.
视图利用内嵌的ruby代码来产生HTML文件;
[*]The controller passes the HTML back to the browser.7
控制器将HTML传回浏览器
[/list]
We start with a request issued from the browser—i.e., the result of typing a URL in the address bar or clicking on a link (Step 1 in Figure 2.11). This request hits the Rails router (Step 2), which dispatches to the proper controller action based on the URL (and, as we’ll see in Box 3.1, the type of request). The code to create the mapping of user URLs to controller actions for the Users resource appears in Listing 2.2;8 this code effectively sets up the table of URL/action pairs seen in Table 2.1.
============================华丽的分割线,翻译的不好别见怪~关键时刻才知道自己的表达能力有点欠缺~~加油===========================
Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值