查看文章
 
ruby第一个程序
2009年03月01日 星期日 上午 1:02

这篇日志的内容是在看完《web敏捷开发》《Web开发敏捷之道》的第二章后的的一个实践。平台是windows xp sp2,编辑器是gVim 7.2。实践的过程中遇到了几个问题,庆幸还是很顺利的一一解决了,整体下来挺流畅的,因为问题基本还是在于开发环境上。进入正题:

首先搭建开发环境。

在win32上有两个选择,一个是使用Instant Rails这个开发包,安装好之后便可以直接使用了,因为其包括了rails、服务器Apache以及数据库mySQL。但是,这里实践时并未使用这种方法,而是使用第二种方法。第二种方法其实也挺容易的,就是后面会碰到这次实践的主要问题。安装方法的步骤如下:

  1. 安装ruby,我选用的版本是ruby 1.8.6。按默认选项安装完成之后,便已经包括了RubyGems这个包管理器以及一个编辑器SciTE。
  2. 更新RubyGems,安装完成后的版本是0.9.x,在命令行中输入gem update --system进行更新,完成之后的版本是1.3.1。
  3. 安装rails:gem install rails 。

这样,rails环境的安装告一段落。

选择编辑器

工欲善其事,必先利其器。

花了点时间去了解了下关于ruby开发工具。《web敏捷开发》《Web开发敏捷之道》书上有简要的介绍了下ruby的编辑器。值得一提的是,不管是书上还是rails官方网站上都首推Mac OS x平台上的TextMate,那个x分钟开发出一个博客的视频里所用的编辑器也是Textmate。Win平台有类似于e-window,同样是商业产品,懒得去折腾破解啥的。另外一个貌似还不错的IDE是aptana,这个IDE之前有一些日志介绍,安装RadRails插件后便可以进行开发;没有深入去使用,因为觉得目前还不适合去使用这种IDE。最后的最后,选择了gVim,带有rails.vim这个东东。rails.vim的主页上的一段介绍蛮有意思的:

TextMate may be the latest craze for developing Ruby on Rails applications, but Vim is forever.   This plugin offers the following features for Ruby on Rails application development.

着手编写程序

  1. 在命令行中输入rails demo创建一个demo应用程序。
  2. 输入ruby script/generate controller say创建一个类
  3. 编辑demo/app/controller目录下的controller_say这个文件,添加如下代码:

    class SayController < ApplicationController
    def index
    @time = Time.now()
    end
    end

  4. 运行WEBrick服务器:ruby script/server。
  5. 在浏览器打开http://lcoalhost:3000/say/index

三大错误分析及解决方法:

在这5个步骤之后,查看浏览器时问题出现了。若按《web敏捷开发》《Web开发敏捷之道》一书上说明,此时在浏览器里看到的内容将是提示缺少模板文件:

Template is missing
Missing template say/index.erb in view path D:/Ruby/work/demo/app/views:

但是,此时浏览器上提示未能载入sqlite3文件:

MissingSourceFile in SayController#
no such file to load -- sqlite3

这个问题出现的原因在于在创建rails应用程序时若未指定所使用的数据库,那么默认使用sqlite。所以,很明显这是由于未安装sqlite3-ruby这个数据库驱动程序造成的。解决的方法可以选择安装sqlite这个数据库或者选用其他的数据库(如mySQL)。我这里选用前者,在命令行输入:

gem install sqlite3-ruby

回车之后,又一段错误:

Building native extensions. This could take a while...
ERROR: Error installing sqlite3-ruby:
ERROR: Failed to build gem native extension.
c:/ruby/bin/ruby.exe extconf.rb install sqlite3-ruby --remote
nmake
'nmake' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1
.2.4 for inspection.
Results logged to c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_
api/gem_make.out

这个问题在sqlite-ruby项目主页bugs报告中有提到,原因在于sqlite3-ruby 1.2.4不兼容win32平台,所以指定sqlite3-ruby的版本即可:

gem install sqlite3-ruby --version 1.2.3

刷新浏览器,第三个错误出现:

没有找到sqlite3.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。

原因很明显缺少sqlite3.dll这个文件,在sqlite的官网下载页面上下载sqlitedll-3_6_10.zip,并解压至c:/ruby/bin/目录下。
至此问题解决。刷新浏览器后终于看到了模板文件丢失的提示。
错误总结,若在win32上使用sqlite作为开发数据库,第二需要安装sqlite3-ruby,并且指定版本为1.2.3,第二需要下载sqlite3.dll这个文件并放置于ruby安装目录的bin文件夹下。
编写Hello,Rails
创建上面所提示缺少的模板文件index.rhtml,文件名称对应于say_controller.rb文件中所设定的action名称。index.rhtml文件如下:

<html>
<head>
<title>Hello,Rails!</title>
</head>
<body>
<h1>Hello,Rails!</h1>
<p>now is <%= @time %></p>
</body>
</html>

刷新浏览器便可以看见结果了,第一个rails应用程序结束了。当然还只是熟悉了编辑环境,以及流程而已。


类别:默认分类||添加到搜藏 |分享到i贴吧|浏览(1186)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu