0%

Ruby on Rails 小試身手 (初識 Rails)

Ruby on Rails 小試身手 (初識 Rails)

  1. 是用 Ruby 做出來的網站開發框架

  2. 發明人:David Heinemeier Hansson(DHH)

  3. 首次公開發表:西元2004年

  4. 西元2005年在研討會上用15分鐘做出一個blog系統,開始吸引大量開發者關注。

Rails 有兩大設計哲學

  1. DRY = 不做重複的事 (Don’t Repeat Yourself)

  2. CoC = 慣例優於設定 (Covention Over Configuration)

使用 Scaffold 創建一個 table 出來

第一步 輸入指令:

1
generate scaffold User name:string email:string tel:string
  • 可以偷懶一下少敲打一些字 :
    generate = g
    String 型態可省略不打
    bin/rails 可以輸入 rails 就好

至於什麼時候用bin/rails這個指令,是因為在本機有安裝不同版本的rails,每個專案開發時使用的版本不同,bin/rails會只針對專案本身使用的rails版本去執行。

rails預設會使用目前本機端內最新版本的rails來執行。

  • 所以有時候會發現某些專案輸入rails g不會執行,要使用bin/rails才會執行。

讓我們開始認識Ruby on Rails,看看它有什麼厲害的地方吧!

首先:cd 到我們要建立專案的目錄底下輸入指令:rails new test-scaffold再 cd 到 test-scaffold 目錄中。

接著我們就開始在終端機輸入指令

1
rails g scaffold User name email tel

可以看到Rails已經幫我們生成好多檔案出來,雖然目前還不了解這些檔案的個別功用,之後在實體課程中會進一步了解。這些檔案就是網站架構起來的關鍵。

看到指令中scaffold這個單字,中文翻譯「鷹架」,從這邊其實大概可以猜的出來這個指令應該是要產生類似腳架的結構出來,一般我們日常生活最常看到這種腳架或鷹架結構,就是建造房屋、大樓。所以看到這行指令會猜想應該是產生要架構出網站的「鷹架」。

這個指令所產生一整串的檔案,其中db/migrate/這個目錄開頭的.rb檔,是一個描述檔。描述「資料庫的架構長什麼樣子」。在這邊可以先理解成描述我們剛剛輸入的指令,之後要建立一張資料表,表單名稱叫做User,且表單裡面會有一些欄位分別是要存放name、email、tellphone等資料。

你會想問為什麼會有這個表單,它的作用如何?這就要說到Rails是由一種叫做 MVC 的軟體構模式來設計網站,主要目的是分化程式的權責,口語化來說,就是各司其職,比如一間餐廳,廚師負責烹飪出菜,服務人員負責接待客人、帶位,收銀櫃檯人員負責結帳,就是分工合作的概念。

  • M(Model):模型,它主要負責跟資料庫溝通。該拿取什麼資料透過Model。

  • V(View):可以當作讓使用者看到的畫面,所以稱為「View」。主要是呈現畫面讓使用者看到。

  • C(Controller):控制器,可以想像成「指揮官」,contoller負責指揮model要去資料庫拿什麼資料,然後決定要用什麼樣的畫面讓view呈現給使用者看到。


所以剛剛前面提到的「描述檔」就是跟model有關係的,因為model才會知道要怎麼拿取資料。之後的實體課程會再進一步的學習。

第二步:把 scaffold 的資料表設定具象化

1
rails db:migrate

這個步驟是把描述檔,生成User資料表。

第三步:啟動伺服器

1
rails server 或是 減寫 rails s

然後,打開瀏覽器,輸入網址
http://localhost:3000/users

耶~~恭喜你,成功建立一個簡單的表單網頁了~~~

按下New user會看到一個新增user的頁面

可以快速的產生一個簡單的user頁面。還能做到新增/修改/刪除。這邊就不放上修改及刪除的頁面了。

第一次看到,哇!!!真是太神奇了,Rails。

這就是第一次與Rails見面。也是第一次寫學習筆記的分享。

或許有些觀念是沒有理解清楚,可以幫忙給予糾正。

期許自己透過分享學習筆記的過程,課程中較模糊或沒有完全理解的觀念可以慢慢的整理清楚。

參考來源:為你自己學 Ruby on Rails (https://railsbook.tw/)