Rails Girls App 教學
Created by Vesa Vänskä, @vesan
Translation by JuanitoFatas, @JuanitoFatas
請先確認電腦是不是已經安裝了 Rails,還沒有安裝的話,請參考安裝指南。
認識工具
編輯器
Sublime Text、Komodo Edit、Vim、Emacs 以及 Gedit 都是妳可以用來寫程式、編輯檔案的編輯器。
終端機(Windows 叫做命令提示字元)
啟動 Rails 伺服器與執行命令的地方。
瀏覽器
(火狐、Safari、Chrome)可以用這些瀏覽器來預覽妳的 APP。
重要
針對妳的作業系統選對的步驟很重要──在 Windows 執行的命令跟 Mac 與 Linux 上的不太一樣。如果妳遇到任何問題,命令最下方可切換作業系統。
1.建立 APP
我們即將建立一個嶄新的 Rails App,名字叫做 railsgirls。
首先,打開終端機:
- Mac OS X: 打開 Spotlight,輸入 Terminal 並點選 Terminal。
- Windows: 按開始,找到命令提示字元,接著按 Command Prompt with Ruby on Rails。
- Linux (Ubuntu/Fedora): 在 dash 搜索 Terminal 並點選 Terminal。
接著,輸入下面的命令到終端:
ls
命令來檢查叫做 projects
的資料夾有沒有產生。應該會在輸出裡看到 projects
資料夾。現在妳想從當下資料夾進入 projects
資料夾,可以執行:
ls
命令來檢查妳現在正在一個空資料夾裡。現在妳可以用下面這個命令,來建立一個新的 APP,叫做 railsgirls
:
railsgirls
資料夾下建立出一個新的 APP,所以我們可以再次使用 cd
命令切換到 Rails APP 資料夾:
ls
命令,妳會看到像是 app
以及 config
這樣的資料夾。可以用下面這個命令來啟動 Rails 伺服器:
dir
命令來檢查叫做 projects
的資料夾有沒有產生。應該會在輸出裡看到 projects
資料夾。現在妳想從目前的資料夾進入 projects
資料夾,可以執行:
ls
命令來檢查妳現在正在一個空資料夾裡。現在妳可以用下面這個命令,來建立一個新的 APP,叫做 railsgirls
:
railsgirls
資料夾下建立出一個新的 APP,所以我們可以再次使用 cd
命令切換到 Rails APP 資料夾:
dir
命令,妳會看到像是 app
以及 config
這樣的資料夾。可以用下面這個命令來啟動 Rails 伺服器:
Windows 使用者注意: 可能需要將 bin\rails
換成 script\rails
,這取決於妳安裝的 Rails 版本。
在瀏覽器打開 http://localhost:3000。應該會看到 “Welcome aboard” 的頁面,代表妳的 APP 產生成功了!
注意!在這個視窗裡看不到命令提示符號,是因為妳正在 Rails 伺服器裡。命令提示符號看起來像是:
當看不到命令提示符號的時候,妳不能執行新的命令。如果妳試著執行 cd
或其它命令都是沒有效的。要回到正常的命令提示符號:
在終端按 CTRL-C
來離開伺服器。
教練: 解釋每個命令用來在做什麼。產生了什麼檔案?伺服器的功用?
2.建立 Idea Scaffold
我們即將使用 Rails 內建的 Scaffold 功能來起步。讓我們可以: 列出、新增、移除、編輯、檢視 idea。
教練: Rails Scaffold 是什麼?(解釋 Scaffold 命令、Model 名稱以及相關的資料庫表格、命名慣例、屬性以及型別…等等。)什麼是資料庫遷移(Migrations)?為什麼需要遷移?
Scaffold 在專案資料夾下建立了一些新檔案,要讓這些檔案生效,需要執行一些指令,來更新資料庫、並重新啟動伺服器。
到瀏覽器打開 http://localhost:3000/ideas。四處把玩看看,妳僅用幾行命令就產生出來的 App。
玩了一陣子之後,按 CTRL-C
來再次離開伺服器。
3.設計
教練: 講講 Rails 與 HTML 之間的關係。Views 裡面哪個部分是 HTML?哪個部分是 ERB?MVC 是什麼?與它們有什麼關係?(Model 與 Controller 負責產生 HTML Views)
妳的 App 現在看起來不太漂亮。讓我們來給她妝扮妝扮。我們會使用 Twitter Bootstrap 專案來非常簡單的幫 App 變漂亮。
在編輯器裡打開 app/views/layouts/application.html.erb
,找到這行
在這行上面加入
並將這行
換成這個
讓我們也加入選單與 footer 到頁面吧。在同一個檔案裡,<body>
標籤下面,加入
以及在 </body>
之前,加入
現在讓我們也來變一下 ideas 表格的風格。打開 app/assets/stylesheets/application.css
到最下面加入
修改過後記得要存檔,並重新整理瀏覽器,看看什麼變得不一樣了。妳也可以繼續調整 HTML 與 CSS。
教練: 稍微講講 CSS 與 layout。
4.加入圖片上傳
我們需要安裝一點軟體(Gem),讓我們可以在 Rails 裡上傳檔案。
在專案資料夾下,用編輯器打開 Gemfile
,找到這行,在這行下面:
加入
教練: 解釋什麼是函式庫,為什麼函式庫很有用。描述一下什麼是開源軟體。
在終端裡,執行:
現在我們可以來產生處理上傳的相關程式。在終端裡,執行:
現在妳需要在終端裡 重新啟動 Rails 伺服器。
在終端裡按下 CTRL-C
來離開伺服器。一旦伺服器停止,妳可以按上,來獲得上個輸入的命令,接著按 enter 來重新啟動伺服器。
為什麼需要重新啟動伺服器呢?因為 App 需要載入剛剛加入的函式庫。
打開 app/models/idea.rb
並在這行下面
加入
打開 app/views/ideas/_form.html.erb
並將這行
改成
在妳的瀏覽器裡,新增一個想法吧,順便貼張圖片。當妳上傳一張圖片,它看起來不像圖片,因為它顯示的是圖片的路徑,所以讓我們讓圖片顯示吧。
打開 app/views/ideas/show.html.erb
並將這兩行
改成
現在重新整理妳的瀏覽器,看看發生了什麼?
教練: 稍微講講 HTML。
5.調整路由
如果妳試著開啟 http://localhost:3000,它仍顯示 “Welcome aboard” 頁面。讓我們來把這頁導到 ideas 頁面。
打開 config/routes.rb
在第一行下面加入
用瀏覽器打開網站的根目錄 (root path,也就是 http://localhost:3000),看看有沒有改變。
教練: 講解路由,包含路由順序以及路由與靜態檔案的關係。
建立靜態頁面
讓我們來添加一頁靜態頁面吧,列出這個 app 的作者是誰──也就是妳!:)
這個指令會在 app/views
資料夾下,新建一個新資料夾叫做 /pages
,並有一個檔案叫做 info.html.erb
,這頁便是妳的作者頁面摟。
剛剛的指令也幫妳加入了一條路由到 config/routes.rb
:
現在打開 app/views/pages/info.html.erb
,並填入一些 HTML,接著打開這頁:
http://localhost:3000/pages/info
看看妳新增的作者頁面。
下一步?
- 使用 HTML & CSS 加入設計。
- 加入評分功能(Ratings)
- 使用 CoffeeScript (或 JavaScript)加入互動。
- 加入圖片大小轉換使加載圖片更快完成。
其它指南
- Guide 0: Handy cheatsheet for Ruby, Rails, console etc.
- Guide 1: 加入評論功能 by Janika Liiv
- Guide 2: 把 APP 放到 Heroku by Terence Lee
- Guide 3: 給上傳的圖片建立縮圖 by Miha Filej
- Guide 4: 使用 HTML 與 CSS 添加設計 by Alex Liao
- Guide 5: 用 Devise 加入驗證功能 by Piotr Steininger