Ruby on Rails 逐步进阶
STEP 1: 从程序的生成到首页的显示
在这篇连载中,我们将通过制作一些简单的Web程序,来学习Ruby on Rails的基础。
使用的Rails的版本是2.3.5。另外,还要配置好MySQL以作为前提条件。
Windows环境下MySQL的安装步骤,请参考 MySQL的配置(Windows环境) 等。
我用的OS是Linux (Ubuntu 9.10)。因此,文件名、命令的记法都带着Unix的风格。使用Windows和Mac OS的读者理解的时候还请适当的换一下。
符号 $ 后面的字符串表示在终端(控制台)输入的命令。Windows环境下,表示打开命令提示符后输入的字符串。
先让我们确认一下操作环境。第一步是Rails的版本。
$ rails --version Rails 2.3.5
接下来是接入MySQL服务器。尚未设定root密码的不需要 -p 选项。
$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 78 Server version: 5.1.37-1ubuntu5 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> quit Bye
以下是确定在目录 ~/work 下进行开发。也可以选择你喜欢的目录。
$ mkdir ~/work $ cd ~/work
生成新程序 plaka 。用 -d 选项指定所使用的数据库的种类。
$ rails -d mysql plaka $ cd plaka
接下来是改变数据库链接的设置。没有设置root密码的情况下不需要这步操作。
使用编辑器打开 config/database.yml ,做如下修改。
development: adapter: mysql encoding: utf8 database: plaka_development username: root password: password host: 127.0.0.1
password 部分,用实际使用的密码进行置换。
生成开发用的数据库 plaka_development 。
$ rake db:create
在MySQL控制台确认。
$ mysql -u root -p -e "show databases"
显示出包含有plaka_development 字符串的行就OK了。
接下来制作首页。
首先删除文件 public/index.html 。
接下来在 generate 脚本生成Top控制器。
$ ruby script/generate controller Top index
设置路由。这是通过Rails程序决定来自浏览器的访问由哪一个控制器的什么动作负责的法则。
使用编辑器打开 config/routes.rb ,进行如下修改。
ActionController::Routing::Routes.draw do |map| map.root :controller => 'top', :action => 'index' end
这表示对根路径 / 的访问,由Top控制器的index动作负责。
在原始文件中写了大量的以 # 开头的行,但因为这些都是命令,所以一口气全部删除吧。然后加上map.root的行。这个文件对Rails程序来说非常重要,如果错了的话有时不能运行,所以请一定仔细输入。
虽然可能对于是否删去config/routes.rb 末尾附近的以 map.connect 开头的2行有些犹豫,但因为这属于Rails 1.x时代的遗留,所以删去也没有关系(实际上应该删去)。
运行程序。
$ ruby script/server => Booting WEBrick => Rails 2.3.5 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2010-01-26 00:08:23] INFO WEBrick 1.3.1 [2010-01-26 00:08:23] INFO ruby 1.8.7 (2009-06-12) [x86_64-linux]
在浏览器中输入 http://localhost:3000/ ,应该显示下面的画面。

这个画面的源文件是 app/views/top/index.html.erb 。
<h1>Top#index</h1> <p>Find me in app/views/top/index.html.erb</p>
用编辑器作出适当的修改并刷新页面,确认画面是否变化。
今天就到这里。
(2010/01/26)
- 前言
- STEP 1: 从程序的生成到首页的显示 (2010/01/26)
- STEP 2: 布局 (2010/01/29)
- STEP 3: 记录列表 (2010/01/30)
- STEP 4: 记录详情显示与删除 (2010/01/31)

