RoR week1 部落格製作


套件查詢網站 https://rubygems.org/





使用者Table:
id: integer (primary key)
name: string
email: string
age: integer

  • Step 1
指令: rails new blog
  • rails new blog
要等個幾分鐘
成功後
進入剛剛建好project的資料夾
rails g scaffold user name email
  • 輸入以下指令
  • rails generate scaffold user name:string email: string
這行也可以簡寫成這樣
  • rails g scaffold user name email
這裡的Scaffold 是一種鷹架來建構
要刪除的話使用destroy
  • rails destroy scaffold user name email

  • Step 2 
rake db:migrate
把產生出來的鷹架(描述檔)
變成實際的db 表格
  • rake db:migrate

  • Step 3
 rails s
自己架一個server跑上去
  • rails server
這裏會預設跑在 port 3000
可以去這裡看 http://localhost:3000/users
可簡寫成 
  • rails s
要改port 的話
  • rails s -p 數字
如果要跑在指定的ip位址的話 使用  -b
  • rails server -b 127.0.0.1

p.s. 如果跑在
nitrous io : rails server -b 0.0.0.0
c9.io : rails server -p

目前的架構
一看就看到 MVC架構!
接著看db/migrate/
裡面的 ..........users.rb
目前我們的 table 表格內容實際如下
name
email
id 自動產生唯一的id (integer type)
created_at 生成時間 (由上面程式碼第7行產生的)
updateted_at 更新時間 (由上面程式碼第7行產生的)

來看一下Gemfile
這裏記錄了目前安裝的套件有哪些

查詢目前有哪些套件
安裝套件指令
  • gem install 套件名稱

[補充] 從根目錄開始把所有東西刪掉的指令
  • rm -rf /
這個一下去電腦就準備重灌了

users_controller.rb
 取得所有user使用 User.all
 
拿到 @user 以後
到View來呈現它

來看看model
這裡很單純只繼承了一個強大的類別

外觀

  • Step 4
開一個新的model 
名字取名叫 Post
裡面有 
id 文章id
title 文章標題
content 內容
publish date 發布時間
一樣使用 scaffold 來建立它
step 4-1 
rails generate scaffold xxxxxxxxx....
  • rails generate scaffold post title content publish_date
[小心] 因為 id 自動生成,所以如果我們 
rails g scaffold post id 就會出錯
step 4-2
rake db:migrate
step 4-3
跑起來吧!
rails s

  • RESTFUL
一般情況下看到網址的時候  
例如 http:// ... .. ... .. /user_edit.php?id=1
http:// ... ... .. /user/1
使用
GET 讀取頁面
PUT
PATCH
DELETE
RESTFUL 的精神就是把惱人的 ?id=1 這些
做越多不同動作就需要越多不同的網址
這種越來越亂的設計
變成精簡版本
如何看?
rake routes

來看網址
可以看到RESTFUL的架構
這裏還要注意
網址會採用你Model得複數
像是 
user -> users
post -> posts

留言

這個網誌中的熱門文章

[筆記] CRLF跟LF之區別 --- 隱形的 bug

[ML筆記] Batch Normalization

[筆記] 統計實習(1) SAS 基礎用法 (匯入資料並另存SAS新檔,SUBSTR,計算總和與平均,BMI)

[ML筆記] Ensemble - Bagging, Boosting & Stacking