ruby on rails 学习(1):启动过程及几个小问题
最近开始关注 ruby 这门动态语言。ruby 的语法确实很让人着迷,大概是日本人(ruby 之父乃日本人 松本行弘,据说此人精通多门语言,尤以 perl 和 python 为甚)和中国人的思维想法多少有些相似之处,ruby 精炼的语法就像是中国人和日本人做事的方法一样,总是试图通过以更少的行为产生更多的结果。且不说 ruby 的未来会如何(至少我是持乐观态度的),单单从 ruby 不同的编程理念中就可以开拓程序设计人员的视野,这不失为一件好事。
闲话少说。使用 ruby 自然会有一个问题产生 -- ruby 可以做什么?ruby 是动态的解释型语言,与 C, C++这种静态的编译型语言不同。从动静以及解释型和编译型之分上便可大体了解到 ruby 之特点。回答 ruby 能做什么这种大多属于功利性问题的最佳答案恐怕目前也只有 ruby on rails 这种实践性的技术了。我也很势利眼,所以在学习 ruby 时我也很快甚至是迫不及待的跑到 rails 大神这里来寻找慰藉。
ruby on rails 初体验
1. install ruby on rails.
要想 install ruby on rails 首先自然得先 install ruby 了。Install ruby 就不说了,这里主要讲 rails。rails 安装有点像 linux 下的软件安装,比方说我经常使用的 linux 系统是 Fedora 13,我安装 mysql 软件时就基本用 yum install mysql* 这种傻瓜式装法。虽然我的 ruby 是安装在 XP 下,但是也可以在 cmd 中使用 gem install rails 来安装,很方便。我用的是 gem install rails,但是建议使用 gem install rails --include-dependencies 这样可以将一些依赖包一并安装。安装完后查看下是否成功:rails -v 若显示版本信息,则说明安装完成。
2. create a new application
新的 application 就是一个新的站点。使用命令 rails application-name 就可以创建新的 application。创建 application 时我参考的书和之后到网上查看的名令都是 rails application-name,如 rails a 但是最近的版本命令(或许和OS有关,待验证)是 rails new application-name。这里创建一个名为 blog 的 application:rails new blog。一大堆的 create 刷过屏后会提示创建成功。
查看相应的文件夹会看到很多文件夹和文件被创建。
这里且先不管其他的文件和文件夹作用,简单说下 app 这个目录里面的各个文件夹作用。
app 目录下共有 5 个文件夹,由于 ruby on rails 创建的 application 是使用 MVC 的,所以这里可以看到对应的 modules-views-controllers 文件夹,helpers 和 mailers 作用就如其名,以后再讲。
3. ruby server
这是启动服务器命令。rails 自带了一个名为 WEBrick 的服务器可以用来执行 rails 程序。 创建 application 后自然想着要去访问,我的参考书籍和网上查看的结果提示我用 ruby script\server 来启动服务,但是却出错了。如下:
script 下根本就没有 server 这个文件,只有一个 rails 文件,是我的程序有误还是 ruby 版本变更所致,这可咋整?
没办法,只能上网查解决办法。查来查去,说的都不明就里,后来干脆 e 文查。果然,有了,提示使用 ruby script\rails server 来启动服务。
又是错误。唉。上网查看问题,原来 rails 默认使用的是 sqlite 数据库。这里我根本就没有这个数据库,再说目前也没有使用数据库,走到这一步真是让人灰心丧气,难怪大家会喜欢 IDE 这些东西,软件包之间的依赖性是一件让人相当头疼的事情。没得办法,先安装 sqlite 吧。
这里给一个 sqlite 包,将其解压到 ruby\bin 目录下,保内有六个文件。
执行命令 gem install sqlite3-ruby-*
安装完成之后再启动server
此时服务器已经启动成功,WEBrick 默认使用的是3000端口,在浏览器中键入 http://localhost:3000就可以看到我们刚才建立的空的 application 了,至此,基本的启动过程已经完成。