rails创建应用程序实例

安装了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应用的工作方式。

(0)

相关推荐

  • Rails脚手架使用实例

    脚手架是rails非常省事的方法,一些简单的增删改查脚手架都能实现,省去了我们不必要的麻烦,那么怎么用rails的脚手架呢,今天来讲解一下. .指定端口启动rails项目 复制代码 代码如下: ruby script/server webrick -p 3000 0.创建一个项目 复制代码 代码如下: rials demoshop 1.用脚手架创建产品(控制 模型 显示 数据) 复制代码 代码如下: script/generate scaffold product title:string de

  • rails上传图片代码实例

    今天讲解一下rails的图片上传,就是最平常的上传图片 这里的rails版本2.3.5 首先新建一个write_pic model内容如下: 复制代码 代码如下: class WritePicrequire "RMagick"require "uuid"def self.write(pic_data,ori_name,resize = nil,file_type = "jpg",tag=false)#File.delete("c:/pr

  • 在阿里云 (aliyun) 服务器上搭建Ruby On Rails环境

    1.阿里云的一键安装web全环境 下载一键安装web全环境 sh.zip 压缩包 上传至服务器,解压.执行脚本,具体步骤详见这里 $ mv sh.zip /home/tmp/ & cd /home/tmp $ unzip sh.zip $ chmod -R 777 sh & cd sh # 任意选择一种方法执行脚本 # 方法一 $ ./install.sh # 方法二 $ ./install_nginx_xxx.sh $ ./install_mysql_xxx.sh 2.安装RVM与指定的

  • rails创建应用程序实例

    安装了Rails框架之后,你同时也得到了一个新的命令行工具:rails.这个工具可以用于构造每个新的Rails应用程序. 为什么我们需要这么一个工具--我是说,为什么不抄起最顺手的编辑器,从头开始编写应用程序的每行代码呢?呃--我们确实可以这样做,但Rails可以在 幕后变很多戏法,让我们只需要做最少量的配置即可运行一个应用程序.为了让这些戏法能够生效,Rails必须能够找到应用程序中的各种组件.正如我们稍后 将会看到的,这就意味着我们必须创建某种固定的目录结构,并且将我们的代码放在合适的地方.

  • Python中使用Tkinter模块创建GUI程序实例

    使用Tkinter模块来创建简单的GUI程序. Tkinter的Widgets有:Button.Canvas.Checkbutton.Entry.Frame.Label.Listbox.Menu.Menubutton.Message.Radiobutton.Scales.Scrollbar.TEXT.Toplevel等. 例: 复制代码 代码如下: # This program displays an empty window. import Tkinter def main():   main

  • python+tkinter编写电脑桌面放大镜程序实例代码

    本文讲述的是通过python+tkinter编写一个简单桌面放大镜的代码示例,具体如下. 代码思路:首先全屏截图,然后在鼠标当前位置以小窗口进行二次截图,放大后再显示到鼠标左上角. 主要技术:全屏截图,指定区域截图,绑定鼠标事件,绘制图像. 建议大家照着代码敲一遍,然后运行试试.代码有一点点小瑕疵,试着发现并尝试解决. 总结 以上就是本文关于Python+tkinter编写电脑桌面放大镜程序实例代码的全部内容,希望对大家有所帮助.感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指

  • wince程序防止创建多个实例实现互斥作用

    流程:1.在程序初始化的时候创建互斥量2.检测互斥量返回的错误代码,看是否已存在这个互斥量3.若已存在相同的互斥量,则释放创建的互斥句柄,并复位互斥量,然后,退出该程序 具体代码如下: 复制代码 代码如下: //创建互斥量HANDLE m_hMutex = CreateMutex(NULL, FALSE, _T("D3GPhoneDlg"));// 检查错误代码if (GetLastError() == ERROR_ALREADY_EXISTS){// 如果已有互斥量存在则释放句柄并复

  • java实现可安装的exe程序实例详解

    java实现可安装的exe程序实例详解 通过编写Java代码,实现可安装的exe文件的一般思路: 1.在eclipse中创建java项目,然后编写Java代码,将编写好的Java项目导出一个.jar格式的jar包: 2.通过安装exe4j软件,将导出的.jar格式的文件制作成.exe格式的可执行的文件,(注意:此时的.exe文件只是可以执行,还不能够安装): 3.通过安装Inno setup软件,将可执行的.exe格式的文件..jar格式的文件以及其它需要的文件制作成一个可安装的.exe格式的文

  • ASP.NET Web API教程 创建Admin控制器实例分享

    In this section, we'll add a Web API controller that supports CRUD (create, read, update, and delete) operations on products. The controller will use Entity Framework to communicate with the database layer. Only administrators will be able to use thi

  • 详解C# 利用反射根据类名创建类的实例对象

    "反射"其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): Assembly assembly = Assembly.LoadFile("程序集路径,不能是相对路径"); // 加载程序集(EXE 或 DLL) dynamic obj = assembly.CreateInstance("类的完全限定名(即包括命名空

  • Python线程创建和终止实例代码

    python主要是通过thread和threading这两个模块来实现多线程支持. python的thread模块是比較底层的模块,python的threading模块是对thread做了一些封装,能够更加方便的被使用.可是python(cpython)因为GIL的存在无法使用threading充分利用CPU资源,假设想充分发挥多核CPU的计算能力须要使用multiprocessing模块(Windows下使用会有诸多问题). 假设在对线程应用有较高的要求时能够考虑使用Stackless Pyt

  • Java实现基于TCP的通讯程序实例解析

    Java中的TCP通信程序 TCP可以实现两台计算机之间的数据交互通信的两端,要严格区分客户端与服务端 两端通信时的步骤: 1.服务端程序,需要事先启动,等待客户端连接 2.客户端主动连接服务器端,才能成功通信,服务器端不可以主动链接客户端 在java中两个类用于实现TCP通信程序: 客户端: java.net.Socket 类表示.创建 Socket 对象,向服务端发出连接请求,服务端响应请求,两者建 立连接开始通信. 服务端: java.net.ServerSocket 类表示.创建 Ser

  • 详解在Java中如何创建多线程程序

    创建多线程程序的第一种方式:创建Thread类的子类 java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类 实现步骤: 1.创建一个Thread类的子类 2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么?) 3.创建Thread类的子类对象 4.调用Thread类中的方法start方法,开启新的线程,执行run方法 void start()使该线程开始执行;Java虚拟机调用该线程的run方法. 结果是两

随机推荐