icon 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/ ,应该显示下面的画面。

画面キャプチャ00

这个画面的源文件是 app/views/top/index.html.erb

<h1>Top#index</h1>
<p>Find me in app/views/top/index.html.erb</p>

用编辑器作出适当的修改并刷新页面,确认画面是否变化。

今天就到这里。

(2010/01/26)