【入门】Ruby on Rails 介绍、安装和实例
首先看这篇文章要有些耐心,因为笔者搜集了关于ruby、rails的尽可能多的方方面面的东西,这样在以后查找起来也比较方便和全面,同时也希望对您学习Ruby on Rails,编程思想和查找资料的思路方面有一些帮助。
一、Ruby及Ruby on Rails 诞生相关介绍
The Ruby scripting language was first published in 1995, and has a very dedicated and active community of users around it. And with the release of the Ruby on Rails web framework in July 2004, Ruby has emerged as a serious alternative to PHP and Java for developing database-driven web sites.
引自《Interview with David Heinemeier Hansson from Ruby on Rails》
Ruby这个名字意为珍贵的宝石,发明者Matz是一个专业的软件工程师,在日本有名的open source公司netlab.JP工作,而且他在日本也是一个高姿态的open source 布道者。他参与了几个开源软件项目,包括cmail,这是一个基于emacs的邮件用户代理,完全用emacs lisp 编写。Ruby也是他的第一个在日本以外的国家如此出名的作品。引自 《Ruby的作者和由来》
在这里我更愿意谈一下Ruby on Rails的发明人David Heinemeier Hansson,因为他的故事听起来很传奇和引人入胜,看看这个过程也许有一天某个风靡全球的新式语言的发明人就是你呢,看看创新是多么重要和富有生产力呀!
以下是引自 《Ruby On Rails之父David Heinemeier Hansson》
如果有人在2003年前看到这个小伙子,也许没人想到他会是天才。他的高中数学成绩考过F,他当过丹麦一个著名游戏网站的记者,他到了21岁才进入哥本哈根商学院读大学本科,他甚至在20岁前没有写过程序。这一切的一切似乎没有任何地方会将他与程序天才挂起钩来。
不过现在,他显得很兴奋,因为他刚接到遥远的大洋彼岸—美国的芝加哥,他两年多的合作伙伴37signals的电话。37signals是一家世界 级的小公司(将世界级与小联系在一起真件有趣的事,到了2006年整个公司只有7个人),他们给他们的客户开发好多的Web应用,但是现在他们决定要拥有 自己的产品了。这个产品的名字叫basecamp,这是一个小型的项目管理和交流软件,他们有两位很好的设计师,但是他们却只有一个程序员——来自大洋彼 岸的还在哥本哈根商学院读大三的David Heinemeier Hansson。
David Heinemeier Hansson显得很兴奋,因为这是一个很有挑战性的项目,尽管他的PHP经验只有两年多,尽管他只在学校的毕设项目里用过J2EE,但是他显得很自信, 他知道也许自己没有数学天赋,也许没有能力解决的难题,但是他对他的开发实力和理解力很自信,因为他知道他有另外一种能力——他能将简单的事情变得更简 化。在使用了PHP的时候,他就开发了一套自己的framework,使PHP的开发变得更简单。
然而真正令David Heinemeier Hansson兴奋的原因却不仅在这里,他决定使用一种新的语言—ruby。事实上他对于ruby的经验只有几天,他只是觉得PHP的语法和设计令他无法 忍受了,尽管PHP的开发速度很快,尽管PHP存在着好多的优点,但是语言的天生缺陷令他决定放弃PHP,他在朋友的怂恿下开始看ruby了, pragmatic programmer一直是他的偶象和目标,而由pragmatic programmer所写的programming ruby也确实令人兴奋,尽管受过些挫折,但是他觉得应该用ruby试试,于是他开始写一套以前用PHP写过的framework。
一周以后,事情的发展变得令人吃惊,Oops,ruby的开发效率实在是太惊人了,而且更重要的是的它的语法是如此的美丽优雅,David Heinemeier Hansson看着他自己一周之内开发出了以前用PHP要一个多月的东西,再加上它把J2EE开发中的学到的一些东西用上去,一切竟会如此简单。他兴奋地 报告了美国总部:我要用ruby开发basecamp。与任何大型、官僚的公司与机构不同,37signals甚至没有做任何考虑就答应了。
两个月后,David Heinemeier Hansson开发出了自己的framework,再过了两个月,整个BaseCamp的产品竟然已经完成了。David Heinemeier Hansson看着自己写的代码兴奋异常,然而更兴奋的事还在后面,BaseCamp一发布就引起了轰动,全世界40多个国家的人值得开始使用,有人认为 它是世界是最好的Web应用程序。
然而更令人轰动的则是架构BaseCamp的framework,David决定将这个framework从basecamp中剥离出,并取名叫 ruby on rails,他觉得既然rails能让自己这么兴奋,开发的效率如此之高,那么rails也应该让别人感到快乐,也许会引起轰动。
2004年7月,rails终于发布了,David Heinemeier Hansson盯着下载的流量,第一周2000次,这是一个不错的成绩,第二周下载量翻了好几倍,一个月、两个月整个社区似乎都在为ruby on rails的诞生而兴奋!随后,他收到了他的偶像pragmatic programmer之一的Dave Thomas的信,Dave决定写一本关于ruby on rails的书,David Heinemeier Hansson也被邀请作为第二作者完成了其中的一章和很多脚注,当2005年这本agile web development with rails诞生后的几周,它登上amazon书店计算机书籍排行榜榜首。甚至反过来,rails也大大影响了ruby的地位,ruby让rails成功, rails使ruby书籍的销售量比2004年翻了10几倍,使ruby成为2005年最受观注的语言,amazing。
ruby on rails的成功让全世界都震惊了,很多人对它喜欢狂热,很多人怀疑,很多人恐慌,不管ruby on rails能走多远,不管ruby on rails会不会代替J2EE,他的创新精神和他的简化开发的思想都将永存。他被评为Google/O'Reilly's Best Hacker of '05,他甚至成为OSCON和好多会议的keynote speaker。
Loud Thinking 是他的博客,可以经常去看看他的足迹。
二、初识Ruby和Ruby on Rails设计模式
也许多数的对Ruby感兴趣的读者都是因为这张图片深深吸引来的吧,这张图片说明了ruby on rails的简洁和对过去的继承和超越。但是这张图片只适用于ruby on rails诞生之初,入门和与java对比之用,要想学好它用好它,真正产生生产力还要听听过来人的推荐吧!
Antonio Cangiano,一位IBM 多伦多研究中心的软件工程师,Ruby, Haskell, Python 和 Erlang语言的爱好者,喜爱用Ruby on Rails 和 Django框架。他最令人惊讶的,是同时维护着两个人气很旺的博客:Zen and the Art of Ruby Programming和Math Blog。引自 《十大必读Ruby on Rails图书收藏》
以下是他推荐的学习书单图:
最好的入门教材当然是《Agile Web Development with Rails》,最好的下载地址是迅雷的网站上,因为是不需要注册的,英文版和中文版的图片都有。
看来学习Ruby on Rails也不是那么简单的,但是做为入门首先先理解它的MVC模式吧,如题所示,熟悉Java的web编程的人都很熟悉这个模式吧,但又有几个想到用这种模式发明出一种高效的框架(如Struts),甚至引入一种新的语言呢(如Ruby on Rails),所以创新,还是创新呀!
引自《浅谈Ruby on Rails - Rails 的 MVC》
授人予鱼,不如授人予渔,介绍Ruby不如多介绍它相关的一些网站:
1.http://rubyforge.org
ruby相关的主要信息来源及下载,在这个网站里有One-Click Ruby Installer,Instant Rails,typo等许多开源包下载。
2.http://tryruby.hobix.com/
Ruby在线学习这个网站有在线的ruby入门学习,这个入门最常见,上面还有作者写的书的连接:《Why's Guide To Ruby》 。
3.用Ruby On Rails编写的著名网站
basecamphq.com,43things.com和odeo.com。
三、Ruby On Rails配置与实践
1.运行Ruby:
学过java的都知道,在环境变量的path上加上ruby/bin就行了,用ruby -v检验版本。加入ruby是必要的,因为在rails的手工编程中也会用到ruby的命令。
小贴士:在ruby/bin/中找到fxri.rbw这个程序,运行一下就可以在里面写ruby语句了。
2.最简单的Ruby On Rails安装方法总结:
1)在http://rubyforge.org上下载instantrails,解压,按readme.txt配置一下即可。intantrails自带cookbook和typo两个rails程序。
2)在http://netbeans.org上下载NetBeans这个IDE,该简体中文网站目前有一个rails博客程序的教程,以后应该会有更好的教程吧。该工具还自带最后rails入门教材的源代码。
说简单是因为这两种方法省去了ruby,rails(gem install rails -remote),mysql的配置和安装。
小贴士:在http://download.csdn.net/source/194498上还有rails博客程序教程的英文视频的下载。
小贴士:其实这个博客就是typo的原型,在http://typosphere.org这个网站上的try it on our test platform链接下可以对这个博客程序进行在线尝试。
四、Ruby On Rails入门之Helloworld和sqlite3
1.新建应用程序
新建程序路径,如在d:/myruby/下输入: rails helloworld ,就会产生名为helloworld的项目及其基本文件
2.新建控制器
先在cmd中用cd命令进入helloworld文件夹,然后输入: ruby script/generate controller hello ,在目录helloworld/app/controllers/下,产生hello_controller.rb文件作为控制器文件。
3.建立action
hello_controller.rb里加入action代码:
def hello
end
4.新建视图(rhtml)
在helloworld/app/views/hello/目录下,建立一个hello.rhtml ,代码如下:
Hello kumhosoft
Time:<%=Time.now%>
5.启动服务器
在helloworld文件夹下输入ruby script/server命令,带服务器启动完毕后,在浏览器网址中输入:http://localhost:3000/hello/hello
6.问题
如果不使用开源项目或IDE,很有可能有数据库的报错(no such file to load -- sqlite3)
问题解决:找到数据库配置文件路径:helloworld/config/database.yml,在这里配置各种数据库,具体可参考:
a.Ruby On Rails问题小结一(编写Hello World)
b.SQLite嵌入式数据库使用
c.SQLite研究——性能优化
感谢您读到这里,您从这篇文章中学到什么呢?总结一下,看完文章,您现在应该知道Ruby on Rails 诞生过程了,相关开源包、软件和入门教程的下载地址以及有了自己的Ruby On Rails的Helloworld程序还有那个博客程序。