登入  |  English
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。
新聞

麥克阿忠的 Ruby on Rails 初探

起源與命名

Ruby 原意為紅寶石,而在電腦程式碼界裡頭是一個簡單快速、物件導向的指令碼語言。Ruby 的起源可以追溯到 1995 年,由日本工程師「松本行弘」開發釋出,並遵循 GPL 協定和 Ruby License。之所以命名為 Ruby,是因為 Perl 的發音與 6 月的誕生石 pearl(珍珠)相同,因此 Ruby 以 7 月的誕生石 ruby(紅寶石)命名。

Ruby 的理念與語言特性


Ruby 發明者松本行弘曾說:

「人們特別是電腦工程師們,常常從機器著想。他們認為:『這樣做,機器就能執行的更快;這樣做,機器執行效率更高;這樣做,機器就會怎樣怎樣怎樣。』實際上,我們需要從人的角度考慮問題,人們怎樣編寫程式或者怎樣使用機器上應用程式。我們是主人,他們是僕人。」

減少瑣碎的時間來提升開發效率與直接溝通的人性化語法,是 Ruby 開發時所遵照的理念。所以發明者松本行弘認為 Ruby > (Smalltalk + Perl )/2,可表示為能像 Smalltalk 一樣完全、完整的物件導向,指令碼執行又有 Perl 強大的文字處理功能的程式語言。


語法:

#取絕對值
-199.abs
=> 199

#計算字串長度含空白
"ruby is cool".length
=> 12

#取含 c 字串的位置
"Rick Astley".index("c")
=> 2

Ruby 可以將任何的東西視為物件,不必再另外宣告基礎型別。

什麼是 Ruby on Rails


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 的環境。

在 Ubuntu 11.04 下安裝 Ruby on Rails


進行系統更新與安裝 MySQL


$ 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

安裝 RVM (Ruby Version Manager)


$ bash <

$ echo "[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile && . ~/.bash_profile

$ source ~/.bash_profile

再打開該檔案 .bashrc 於最後一行加上 source ~/.bash_profile

安裝 REE (Ruby Enterprise Edition)


$ rvm install ree

$ rvm ree --default

安裝 Rails


$ sudo apt-get install libbuilder-ruby

$ gem install rails -v=3.0.7

$ gem install mysql

以上即完成了 Ubuntu 11.04 下的開發環境了。

在 Mac OS X 下安裝 Ruby on Rails


在撰寫文章之際,新版 Mac 系統已經正式出版,名為 Mac OS X Lion,版本代號為 10.7,因尚未得知版本是否相容,本篇將以 10.6.8 的方式安裝。

安裝 Xcode


安裝 Xcode 的用意是要與 Homebrew 搭配使用。

Mac OS X Install CD >> 選擇安裝,若無 CD 者到 https://developer.apple.com/xcode/ 安裝最新版的 Xcode,升級至 Lion 版者可獲得免費升級,其餘版本有可能會需要付費,除非您是專職 Apple 軟體開發者或是有意願在 Mac 平台上開發者,可以付費購買。

安裝 Homebrew


> ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

> brew install git

> brew update

安裝 MySQL


> 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

安裝 RVM (Ruby Version Manager)


> bash <

> echo "[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm" >>

~/.profile && . ~/.profile

> source ~/.profile

安裝 REE ( Ruby Enterprise Edition )


> rvm install ree

> rvm ree --default

修正在使用 RVM 裝 REE 之後不能使用中文的問題


> brew install readline

> brew link readline

> rvm --reconfigure --force -C --with-readline-dir=/usr/local install ree

安裝必要的 RubyGems


> 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 下的開發環境。

在 Windows 下安裝 Ruby on Rails


安裝非常簡單,此段將簡單說明需要的步驟。

下載一鍵安裝的 rubyinstaller.exe


到 RubyForge 網站 https://rubyforge.org/frs/?group_id=167 下載最新版本的 Ruby 程式。

安裝 Rails


開啟「文字命令」模式輸入

C:/> gem install rails –include-dependencies

請記得保持網路暢通,此動作將透過網路下載相關的檔案來安裝。

安裝 MySQL


到 MySQL 官方網站下載最新版本 https://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 https://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 在網址輸入

https://localhost:3000


看到以下的畫面,表示您完成初探 Ruby on Rails 的第一步了!

https://www.openfoundry.org/images/110809/ruby_on_rails.png

 

▲ 圖1

結語


Ruby 相較於其它程式語言較為直覺、容易閱讀,也易於上手。一般來說,只要能在物件導向論點中精實的學習,可以加速一倍以上的開發時效。在 Web 開發中,大都是用 Rails 做為 FrameWork 來共同開發大型專案,因 MCV 為開發的出發點,大部分資深的程式設計師都會比較不習慣,相信了解它的架構之後,個人的學習曲線將能一躍直上。

下一篇將進入如何用 Ruby on Rails 寫出一個網站,敬請期待。

資源連結


Ruby on Rails 實戰聖經 https://ihower.tw/rails3/

Ruby on Rails 指南手冊 https://guides.ruby.tw/rails3/index.html

二十分鐘 Ruby 體驗 https://www.ruby-lang.org/zh_TW/documentation/quickstart/

Ruby on Rails 教學影片 https://railscasts.com/ RailsCasts

從 PHP 轉換 Ruby 的方法 https://railsforphp.com

作者簡介


麥克阿忠,資深網站程式開發者,興趣攝影。目前擔任 Ruby on Rails 網站開發員,主要使用 Ubuntu Server 進行 Web 應用程式開發。
作者部落格 https://about.me/MichaelChen520
歡迎對 Ruby 有興趣的同好一同來交流指教。



您也許有興趣閱讀以下文章:




自由軟體鑄造場電子報 : 第 178 期 利用 FreeNAS 打造儲存設備(1)-歷史篇
標籤: Rails,   Ruby,   Introduction,  
分類: 技術專欄



評論 

 
0 #1 idarfan 2011-09-11 00:36
可以跟您請教一下如何裝mysq l給rails of ruby嗎?
 
 
0 #2 michael52025 2011-09-13 10:33
您好
欲安裝mysql 請於ubuntu中下指令
sudo apt-get install mysql-server mysql-common mysql-client libmysqlclient16-dev

然後再下gem指令
gem install mysql2

並修改gem file 中加上 gem 'mysql2'
如果是rails 3 以上,則改為gem 'mysql', '~>0.2.7'

最後將config/database.yml 中的資料庫設定為 mysql2 以及所需的帳密即可。