安装了Rails框架之后,你同时也得到了一个新的命令行工具:rails。这个工具可以用于构造每个新的Rails应用程序。
为什么我们需要这么一个工具——我是说,为什么不抄起最顺手的编辑器,从头开始编写应用程序的每行代码呢?呃……我们确实可以这样做,但Rails可以在 幕后变很多戏法,让我们只需要做最少量的配置即可运行一个应用程序。为了让这些戏法能够生效,Rails必须能够找到应用程序中的各种组件。正如我们稍后 将会看到的,这就意味着我们必须创建某种固定的目录结构,并且将我们的代码放在合适的地方。 rails这个命令可以帮我们创建这一目录结构,并且生成一些标准的Rails代码。
现在,我们来创建第一个Rails应用程序:打开shell窗口,进入文件系统的某个地方——你希望将应用程序目录结构保存在那里的某个地方。在我们的例 子中,我们将把项目创建在一个名为work的目录之下。因此,我们在这个目录中用rails命令创建一个名为demo的应用程序。在这里要加些小心:如果 已经存在一个名叫demo的目录,rails会询问你是否要覆盖已有的文件。
复制代码 代码如下:
dave> cd work
work> rails demo
create
create app/apis
create app/controllers
create app/helpers
: : :
create log/development.log
create log/test.log
work>
上述命令创建了一个名为demo的目录。进入这个目录,列出它的全部内容(在Unix中使用ls命令,在Windows中使用dir命令),你应该会看到这样的一堆文件和子目录:
复制代码 代码如下:
work> cd demo
demo> ls -p
CHANGELOG app/ db/ log/ test/
README components/ doc/ public/ vendor/
Rakefile config/ lib/ script/
突然面对那么多目录(还有它们包含的文件)也许会让你感到有点害怕,不过我们完全不用理会它们的存在。现在,我们只需要用到它们中的一个,也就是public目录。
正如它的名字所暗示的,public目录包含了我们希望暴露给最终用户看到的那些文件。这里的关键文件是分发器 (dispatcher):dispatch.cgi、dispatch.fcgi、以及dispatch.rb。分发器负责接收用户从浏览器发出的请 求,并将这些请求引导至应用程序中的程序代码。这几个文件很重要,不过我们目前还不需要接触它们。
你还会看到,在demo目录下有一个script子目录,其中存放的是一些工具脚本,我们在开发应用程序的过程中会用到它们。现在,我们就要使用其中名叫 server的脚本,它会启动一个独立运行的WEBrick[1]服务器,我们新建的Rails应用程序就将在其中运行。那么,在继续前进之前,我们先把 刚才编写(或者说,生成)的应用程序启动起来吧。
复制代码 代码如下:
demo> ruby script/server
=> Rails application started on http://0.0.0.0:3000
[2005-02-26 09:16:43] INFO WEBrick 1.3.1
[2005-02-26 09:16:43] INFO ruby 1.8.2 (2004-08-24) [powerpc-darwin7.5.0]
[2005-02-26 09:16:43] INFO WEBrick::HTTPServer-start: pid=2836 port=3000
从启动输出信息的最后一行就可以看出,我们在3000端口[2]上启动了一个web服务器。我们可以打开浏览器,访问http://localhost:3000,就会看到这个应用程序。
我们可以让WEBrick一直在这个命令行窗口中运行。稍后我们编写应用代码之后,只要在浏览器中访问,就会看到命令行窗口输出请求的相关信息。如果想要停止WEBrick的运行,可以在命令行窗口中按下Ctrl-C键。
现在,我们已经让新应用跑了起来,但其中还没有我们自己编写的代码。下面,我们就要改变这种情况。
[1] WEBrick是一个纯Ruby编写的web服务器,随Ruby 1.8.1或更高版本发行。
[2] URL地址中的“0.0.0.0”表示WEBrick会接收来自所有接口的连接。在Dave的OS X系统上,这就表示不管来自本地接口(127.0.0.1和::1)还是来自LAN连接的请求都会被WEBrick接收到。
现在,我们来编写一个极其简单的web应用,以验证Rails已经成功地在我们的机器上落户了。在此过程中,我们还会简单介绍Rails应用的工作方式。