创建第一个 Rails 程序(使用mysql)

六 18th, 2011

Rails 向来以Web快速开发闻名,究竟有多快,体验了才知道,本文将带你一步步开发一个Rails Web程序,适合Ruby on Rails初学者入门。
大部分内容是从英文教程翻译过来的,原文是基于Rails 2.*版本,对Rails 3.*有些已经不兼容,特地做了些修改。适用于于Rails 3.*版。

英文原文链接
http://wiki.rubyonrails.org/getting-started/first-rails-app-walkthrough

一、安装

可以参考前面的教程,根据您的系统安装Ruby/Rails,并确保安装好mysql。
可以参考下面的链接

二、创建并运行

$ rails new myapp -d mysql # 将会在当前目录创建Rails程序骨架
$ cd myapp # 进入目录
$ rails server # 启动服务器

此时如果通知执行 “bundle install”,执行它然后重新执行”rails server”
浏览器访问 http://127.0.0.1:3000。你将能看到Rails正在运行;休息一下,恭喜你。

三、创建数据库 & scaffold

(scaffold一般翻译为脚手架,但本人认为这个翻译不过生硬,而且脚手架是建筑界的通用术语,很多人不知道是啥。体验原味,暂不翻译)

1、用你喜欢的编辑器打开程序,我个人喜欢RubyMine

2、打开config/database.yml,你可以在这里配置数据库,默认会生成3个数据库,development/production/test。分别对应于开发/生成/测试环境,你也可以添加host和port参数配置数据库服务器IP和端口。本程序使用默认配置即可。

3、创建development数据库

$ rake db:create

4、现在我们需要创建我们的第一张表。在Rails中,一般通过scaffold来生成表。scaffold是rails中经常使用的命令,可以完成很多非常神奇的功能。让我们先不带任何参数运行一下scaffold

$ rails generate scaffold

输出结果将告诉我们怎么使用这个命令

5、让我们用scaffold来生成代码

$ rails generate scaffold user first_name:string last_name:string active:boolean

会创建controller, views, models和数据库脚本,但此时还没有创建表

6、创建数据表

rake db:migrate

migrate是“迁移”的意思,它会执行上一步生成的数据库脚本。

7、浏览器访问:http://127.0.0.1:3000/user
这个页面已经为我们生成了增删改查代码,开始玩吧

四、添加功能

1、哎呀!这时忽然想起忘记给user添加bio字段了。这时我们可以回退刚才的操作并添加一列

$ rake db:rollback

回退上一次migrate

2、打开/db/migrate/ 目录,这里只有一个文件[date]_create_users_rb。代码中定义了up方法来建表,down方法来删表。修改代码,在t.boolean :active后添加t.text :bio

3、保存文件并执行

$ rake db:migrate

4、如果访问http://localhost:3000/users/new你会发现表单中仍没有bio字段,这个字段要我们手动添加

5、打开/app/views/users/_form.html.erb

前面添加

<%= f.label :bio %> <%= f.text_area :bio %>

6、在view页面中添加bio字段。打开/app/views/users/show.html.erb
/app/views/users/index.html.erb,依照其它字段添加bio信息

7、上面操作做完后你将在增删改查页面都发现多了bio字段。

五、添加Validation验证

1、Rails把validations放在model文件里,所以我们找到/app/models/user.rb

2、我们需要用户必须输入first name和last name。修改后的代码如下:

class User < ActiveRecord::Base
  validates_presence_of :first_name, :last_name
end

3、添加一个用户,试着不输入first name或last name,提交表单后会报错。

六、把玩console

1、让我们来对User Model做一些有意思的事情。运行:

$ rails console

将会为我们提供一个有访问models权限的Ruby IRB session

2、玩之前,先在console里执行下面代码,以便让我们查看生成的SQL代码

ActiveRecord::Base.logger = Logger.new(STDOUT)

3、运行一个Ruby代码测试正常运行

puts "Hello Dude!"

4、现在就可以开始操作我们的model了,可以这样来创建一个用户

u = User.new
u.first_name = "Gregg"
u.last_name = "Pollack"
u.save

注意留意生成的SQL

5、也可以这样,合并成为一行代码

User.create(:first_name => "Joe", :last_name => "Blow")

6、查找first name 为”joe”的用户,并修改他的last name为”johnson”

u = User.find_by_first_name("Joe")
u.last_name = "Johnson"
u.save

7、删除用户

u.destroy

8、玩一下几个常用命令

User.first
User.last
User.all

User.all会返回一个数组,使用[0]或[2]来操作其中的一个元素

9、以首字母大写打印出系统中所有用户first name

User.all.each {|user| puts user.first_name.upcase }

10、将会发现打印出所有的first name,同时返回Users数组。记住所有Ruby方法都会有返回值,即使返回的是nil空的。

11、用所有用户的last name创建一个数组

User.all.map {|user| user.last_name }

代码下载

myapp

标签: ,
>>原创文章,欢迎转载。转载请注明:转载自Ruby迷,谢谢!
>>原文链接地址:创建第一个 Rails 程序(使用mysql)
目前还没有任何评论.