作者:麥克阿忠,2011 年 8 月投稿。
Ruby 原意為紅寶石,而在電腦程式碼界裡頭是一個簡單快速、物件導向的指令碼語言。Ruby 的起源可以追溯到 1995 年,由日本工程師「松本行弘」開發釋出,並遵循 GPL 協定和 Ruby License。之所以命名為 Ruby,是因為 Perl 的發音與 6 月的誕生石 pearl(珍珠)相同,因此 Ruby 以 7 月的誕生石 ruby(紅寶石)命名。
Ruby 發明者松本行弘曾說:
「人們特別是電腦工程師們,常常從機器著想。他們認為:『這樣做,機器就能執行的更快;這樣做,機器執行效率更高;這樣做,機器就會怎樣怎樣怎樣。』實際上,我們需要從人的角度考慮問題,人們怎樣編寫程式或者怎樣使用機器上應用程式。我們是主人,他們是僕人。」
減少瑣碎的時間來提升開發效率與直接溝通的人性化語法,是 Ruby 開發時所遵照的理念。所以發明者松本行弘認為 Ruby > (Smalltalk + Perl )/2,可表示為能像 Smalltalk 一樣完全、完整的物件導向,指令碼執行又有 Perl 強大的文字處理功能的程式語言。
語法:
-199.abs
=> 199
"ruby is cool".length
=> 12
"Rick Astley".index("c")
=> 2
Ruby 可以將任何的東西視為物件,不必再另外宣告基礎型別。
Rails 意指為鐵道,所以 Ruby on Rails 可想像為遵行在已規劃好的鐵路上,以穩定、快速、便捷的運作整個 Web 專案。
Rails 的創始人「大衛.海納梅爾.韓森」於 2004 年 7 月從 37signals 公司的管理工具 Basecamp 分離出 Ruby on Rails,然後再以開源方式發佈。Ruby on Rails 簡稱 RoR 或是 Rails,使用 Ruby 語言所開發編寫的開源 Web 應用框架,嚴格按照 MCV 架構開發。其架構採取 Model、View、Controller 分離的開發式,不但減少了開發者與美工之間的落差,也簡化許多繁雜的動作。
Ruby 可在包含 Linux、Mac OS X 與 Microsoft Windows 下運作,本篇將在這三個系統下介紹安裝 RoR 的環境。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install git
$ sudo apt-get install mysql-server libmysqlclient15-dev
$ sudo apt-get install curl
$ sudo apt-get install build-essential zlib1g-dev libssl-dev libreadline5-dev
$ bash <
$ echo "[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm" >>~/.profile && . ~/.profile
$ source ~/.bash_profile
再打開該檔案 .bashrc 於最後一行加上 source ~/.bash_profile
$ rvm install ree
$ rvm ree --default
$ sudo apt-get install libbuilder-ruby
$ gem install rails -v=3.0.7
$ gem install mysql
以上即完成了 Ubuntu 11.04 下的開發環境了。
在撰寫文章之際,新版 Mac 系統已經正式出版,名為 Mac OS X Lion,版本代號為 10.7,因尚未得知版本是否相容,本篇將以 10.6.8 的方式安裝。
安裝 Xcode 的用意是要與 Homebrew 搭配使用。
Mac OS X Install CD >> 選擇安裝,若無 CD 者到 http://developer.apple.com/xcode/ 安裝最新版的 Xcode,升級至 Lion 版者可獲得免費升級,其餘版本有可能會需要付費,除非您是專職 Apple 軟體開發者或是有意願在 Mac 平台上開發者,可以付費購買。
ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
brew install git
brew update
brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)"
cp "$(brew --prefix mysql)"/com.mysql.mysqld.plist ~/Library/LaunchAgents
launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
"$(brew --prefix mysql)"/bin/mysql_secure_installation
Set root password? [Y/n] Y
New password: 123456
Re-enter new password: 123456
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
bash <
echo "[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm" >> ~/.profile && . ~/.profile
source ~/.profile
rvm install ree
rvm ree --default
brew install readline
brew link readline
rvm --reconfigure --force -C --with-readline-dir=/usr/local install ree
gem install rails
gem install rails -v=3.0.7
gem install mysql2
gem install passenger
gem install nokogiri
gem install capistrano
gem install capistrano-ext
gem install delayed_job
gem install hoptoad_notifier
gem install facebooker2
gem install factory_girl
gem install sphinx
以上即完成了 Mac OS X 下的開發環境。
安裝非常簡單,此段將簡單說明需要的步驟。
到 RubyForge 網站 http://rubyforge.org/frs/?group_id=167 下載最新版本的 Ruby 程式。
開啟「文字命令」模式輸入
C:/> gem install rails –include-dependencies
請記得保持網路暢通,此動作將透過網路下載相關的檔案來安裝。
到 MySQL 官方網站下載最新版本 http://dev.mysql.com/downloads/
以上即完成了 Windows 下的安裝
Ruby on Rails 開發所使用的編輯器有很多種,其中最簡便的就是用系統預設的文字編輯器 vi 或是 vim 即可開發。
先下一些指令來檢視您的環境版本。
檢視 Ruby 的版本:
$ ruby -v
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-linux], MBARI 0x8770, Ruby Enterprise Edition 2011.03
檢視 Rails 的版本:
$ rails -v
Rails 3.0.7
檢視 rake 版本:(此 V 為大寫)
$ rake -V
rake, version 0.8.7
若以上的指令能顯示版本資訊,表示您可以用 Ruby on Rails 進行開發了。
開一個新專案:
建立一個新成立的網站,我們必須要當它為一個專案來進行開發,所以請在您欲指定的家目錄下新開一個專案,
請下這個指令:
$ rails new demo
create
create README
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/mailers
create app/models
create app/views/layouts/application.html.erb
create config
create config/routes.rb
......
......
rails 將會為您產生關於 MCV 架構的檔案目錄。然後進入您的 demo 目錄下輸入
$ rails s
=> Booting WEBrick
=> Rails 3.0.7 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-07-21 14:14:09] INFO WEBrick 1.3.1
[2011-07-21 14:14:09] INFO ruby 1.8.7 (2011-02-18) [i686-linux]
[2011-07-21 14:14:09] INFO WEBrick::HTTPServer#start: pid=2967 port=3000
然後打開 Web browser 在網址輸入
http://localhost:3000
看到以下的畫面,表示您完成初探 Ruby on Rails 的第一步了!
▲ 圖1
Ruby 相較於其它程式語言較為直覺、容易閱讀,也易於上手。一般來說,只要能在物件導向論點中精實的學習,可以加速一倍以上的開發時效。在 Web 開發中,大都是用 Rails 做為 FrameWork 來共同開發大型專案,因 MCV 為開發的出發點,大部分資深的程式設計師都會比較不習慣,相信了解它的架構之後,個人的學習曲線將能一躍直上。
下一篇將進入如何用 Ruby on Rails 寫出一個網站,敬請期待。
Ruby on Rails 實戰聖經 http://ihower.tw/rails3/
Ruby on Rails 指南手冊 http://guides.ruby.tw/rails3/index.html
二十分鐘 Ruby 體驗 http://www.ruby-lang.org/zh_TW/documentation/quickstart/
Ruby on Rails 教學影片 http://railscasts.com/ RailsCasts
從 PHP 轉換 Ruby 的方法 http://railsforphp.com
麥克阿忠,資深網站程式開發者,興趣攝影。目前擔任 Ruby on Rails 網站開發員,主要使用 Ubuntu Server 進行 Web 應用程式開發。 作者部落格 http://about.me/MichaelChen520 歡迎對 Ruby 有興趣的同好一同來交流指教。