(Iseesea翻译,转帖请保留~谢谢~~有支持才有坚持~)
基于Rails3.0.3 俺试着翻译这本书,如有异议或者需要可以直接看原文。。。嘎嘎。不足之请多指教~.我边学边翻译吧,顺便学习英语。
http://railstutorial.org/
由于第一章主要是一些介绍和关于git的使用,所以就不翻译了,有需要的话再回去翻译。
第二章 演示程序
在这一章,我们将开发一个简单的演示程序来显示一些Rails的魅力。目标是通过使用Scaffold 生成器来快速地创建一个程序从而给大家一个高水平的Ruby on Rails (传统步骤开发Web程序)编程综述,就像BOX1.1(第一章中关于Scaffolding介绍)中说的那样,本书接下来其他部分将会采用和本章相反的方法来学习Rails。接下来的章节中我们将会开发一个完整的程序,并逐渐的介绍每一个Rails3中新的观念,但是对一个简单概述来说(最直接的需要)Scaffold 生成器是不可替代的。这个演示程序允许我们通过URL和它进行交互,让我们了解Rails 程序的结构,包括第一个例子中为什么Rails喜好的REST 结构。
接下的演示程序中,将会由一些用户和他相关的类似Twitter风格的运用程序组成(其实就是围脖吧。microposts估计是那个发布信息的意思,嘎嘎),所有的功能都还没有实现,而且很步骤看起来很神奇,但是不要担心,所以的程序我们都将在第三章从零开始开发,而且我可以对后面材料提供一个详细的向前引用注解(原文是 I will provide plentiful forward-references to later material。 这句话很拗口,估计是指会在后面解释前面的运用)。于此同时,请保持一点耐心和信心,这本数的意义在于让你超越这些浅显的东西,通过Scaffold 驱动的方法去获得对Rails的深层次理解。
[size=medium;]2.1 规划程序[/size]
在这一节中,我们将规划处我们程序的大纲。和第1.2.3节一样,我们从用 Rails 命令长生我们的运用程序骨架开始,
Listing 2.1:
$cd ~/rails_projects
$rails new demo_app
$cd demo_app
接下来,我们使用一个文本编辑器来编辑bundler需要的Gemfile文件。
Listing 2.1. 演示程序的Gemfile文件
source 'http://rubygems.org'
gem 'rails', '3.0.3'
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
提醒一下,我需要sqlite3-ruby的gem版本是1.2.5.如果这个版本不能不使用,你可以试用1.3.1。
我们完成配置之后就可以使用bundle命令来安装这些包括的gem文件,
$ bundle install
最后,我们可以初始化Git库(本书第一章的后半部分介绍了Git的常用方法,有需要的可以去看原文的地址)
$ git init
$ git add .
$ git commit -m "Initial commit"
图片2.1: 在GitHub上创建演示程序库
$ git remote add origin git@github.com:<username>/demo_app.git
$ git push origin master
现在,我们可以开始程序本身的工作了。在传统的Web程序开发中,第一步是创建我们程序所需要结构决定的的data model,对我们的例子来说,它是一个非常精简的微博程序,他只有用户和用户说说(microposts),这样我们就先为我们的程序创建一个用户的model--user(2.1.1节),接着我们给增加microposts的model(2.1.2节);
2.1.1 users model
user不用的结构对应着在页面上会有不同的表格,我们用最简单的结构来创建User model,它有一个唯一的int类型的主键,id,和一个公共可见的名字,string类型,和一个email地址,可以看做用户的第二用户名。所以,user的数据模型如下图2.2所示,
图2.2
我们将在6.1.1节中学到,上表中的Users标签,代表着在数据库中的一个users表,上表的属性就是它的字段。
2.1.2 microposts model
micropost的数据模型比user的更简单,它只有一个id和一个string类型的content来代表发言的内容。有一个附加的关系,我们希望将micropost和特定的user联系起来,我们可以可以添加一个user_id来记录post的所有者,这样,micropost的最终结果如图2.3所示,
图2.3
我们可以在2.3.3节(更详细的在第11章)中找到user_id的属性如何可以让我们更简单的表达user和micropost之间一对多的关系。
2.2 Users 资源
在这一节,我们将实现2.1.1节中User数据模型的网络接口。通过这个网络接口和模型的组合,使我们可以通过HTTP协议来实现对user资源的CRUD(添加,查询,更新,和删除)
简介里面提到的,我们的User资源将会通过脚手架生成器(Scaffold generator)来产生。脚手架生成器是每一个Rails项目的标配;scaffold的参数是要产生的资源名称,在这里是User,后面可以的可选参数,可以使数据模型的属性和类型。
$ rails generate scaffold User name:string email:string
invoke active_record
create db/migrate/20100615004000_create_users.rb
create app/models/user.rb
invoke test_unit
create test/unit/user_test.rb
create test/fixtures/users.yml
route resources :users
invoke scaffold_controller
create app/controllers/users_controller.rb
invoke erb
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
invoke test_unit
create test/functional/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
create test/unit/helpers/users_helper_test.rb
invoke stylesheets
create public/stylesheets/scaffold.css
命令后面更上 name:string 和email:string,可以让我们在rails自己产生的页面表单中有这2个数据模型的属性。如图2.2,提示,在命令中没必要添加属性id,因为他会被rails自动创建。
程序的第一步,我们应该使用rake运行数据库迁移,如下:
$ rake db:migrate
== CreateUsers: migrating ====================================================
-- create_table(:users)
-> 0.0017s
== CreateUsers: migrated (0.0018s) ===========================================
就这样非常简单的更新了数据库,我们创建了一个新的users数据模型,我们将会在6.1.1节中学习数据库迁移migrations。
(如果大家的数据库是空的,或者程序新建的话,先运行 rake db:create,他会创建开发环境和测试环境的数据库)
之后我们可以通过命令 rails s(rails server的简写)来启动服务器,
(该命令也可以带参数,可以设置启动的服务器,默认启动的是WEBrick,也可以设置启动的环境,默认是开发环境)
$ rails s
=> Booting WEBrick
=> Rails 3.0.3 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
我们可以在 http://localhost:3000/上看到我们的演示程序。
Box 2.1 Rake
在Unix系统上,make工具在执行源代码上有着非常重要的作用,非常多的电脑黑客输下面的代码输到不用大脑了。。。(可以这样翻译吧。。。muscle memory)
$ ./configure && make && sudo make install
(---------------------------------华丽的分割线,我需要休息啦。——————)
- 大小: 5 KB
- 大小: 6.1 KB
分享到:
相关推荐
“The author is clearly an expert at the Ruby language and the Rails framework, but more than that, he is a working software engineer who introduces best practices throughout the text.” —Greg ...
《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。
【Ruby on Rails Tutorial 原版】是由Michael Hartl创作的,特别适合初学者的一份指导教程。这个教程全面介绍了Ruby on Rails(简称RoR),它是一个由David Heinemeier Hansson用Ruby语言开发的高效Web应用框架。RoR...
- **《Ruby on Rails 3 教程》**:由Michael Hartl编写的一本经典教材,被广泛认为是学习Rails的最佳资源之一。 - **教学方法**: - **示例驱动**:通过具体的项目示例来讲解Rails的各种功能。 - **循序渐进**:从...
本书《Ruby on Rails 教程 —— 使用 Rails 学习 Web 开发》第三版是由 Michael Hartl 编写的一本全面介绍 Ruby on Rails 的教程。该书面向希望学习如何使用 Ruby on Rails 进行 Web 应用开发的初学者和中级开发者。...
《Ruby on Rails 3.2 Tutorial》是Michael Hartl撰写的一本经典教程,旨在通过实践教学的方式帮助初学者掌握Rails框架。Rails是一个基于Ruby语言的开源Web应用框架,遵循MVC(模型-视图-控制器)架构模式,以其DRY...
《Ruby on Rails Tutorial: Learn Rails by Example》是Rails学习者们常常参考的一本书,由Michael Hartl撰写。这本书通过实际的示例项目“sample_app”引导读者深入理解Rails框架的各个方面。现在,我们来详细探讨...
creat by Michael Hartl,good for new programmer,a nice guide
该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本 系统依赖 配置 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) 部署说明 … 如果...
Ruby on Rails教程样本应用程序这是的示例应用程序 进行 。执照中的所有源代码都可以根据MIT许可和Beerware许可共同获得。 有关详细信息,请参见 。入门要开始使用该应用程序,请克隆存储库,然后安装所需的gem: $ ...
《Ruby教程:通过实例学习Rails》是Michael Hartl所著的一本权威教程,该书以其详尽的内容和实践导向的方法,成为了Ruby on Rails开发者入门和进阶的必读材料。以下是从标题、描述、标签以及部分内容中提炼出的关键...
Ruby on Rails教程样本应用程序 这是的示例应用程序 。 执照 中的所有源代码都可以根据MIT许可和Beerware许可共同获得。 有关详细信息,请参见 。 入门 要开始使用该应用程序,请克隆存储库,然后安装所需的gem: ...
1. **“Ruby on Rails Tutorial” by Michael Hartl** - **简介**:这是一套非常受欢迎的在线视频教程,由Michael Hartl主讲,详细介绍了如何使用Ruby on Rails框架来构建Web应用程序。 - **适合人群**:适合希望...