在講解完ROR的核心架構後,接下來就開始進入完整的ROR系統設計了,我們要依據MCV的架構來進行基本留言板的架設。
建立Model(資料庫)
基本上ROR已經有提供自動建立留言版的Model功能,因此我們只要下建立的指令即可
$script/generate model
下了這道指令後會跑出各種model的說明,我們直接針對他提供的Post例子來進行留言版的資料庫建立
$script/generate model post tilte:string body:text published:boolean
這道指令用看的就知道是怎樣的結構,很簡單明瞭,就是建立一個叫post的資料庫,這個資料庫的欄位(field)有title(型態string)、body(型態text)、published(型態boolean),各別代表留言的標題、內容與是否為私密留言這三種類型。
接著打入以下指令:
$rake db:migrate
rake有點類似make的這種人家幫你寫好的程序,db代表database,migrate代表遷移的動作,也就是會將剛剛建的資料庫遷移至rake裡面程序設定的控管下,這樣才能透過ruby來簡單操作資料庫。
對於rake與migrate的相關資料官網與其他網站上有說明,這邊附上網址
http://guides.ruby.tw/rails3/migrations.html 官網說明
http://ihower.tw/rails3/rails-recipes.html rake的更多應用
到這邊資料庫就算建立完成了。
使用SQLiteBrowser查看資料庫的資料
完成資料庫建立後我們該怎麼資料有沒有建立成功呢? 之後新增刪除資料怎麼知道資料庫有沒有動作呢?
因此我們現在安裝sqlitebrowser這個小工具可以幫我們查看SQL資料庫的內部情況
$sudo apt-get install sqlitebrowser
安裝完後打入
$sqlitebrowser db/development.sqlite3
就會跑出以下的畫面了
接著我們點擊Browse Data就可以看到剛剛建立的post資料庫了,以後有對資料庫做任何的動作都可以從這裡看到。
眼尖的人應該會發現當初明明建立的名字叫做post,為什麼這邊會變成posts? 這是因為rails這邊針對資料庫的命名都以複數為主,因此輸入單數的詞會自動轉成複數。
另外我們可以看到除了當初定義的三種欄位外,還有另外兩個created_at與update_at的欄位,這是系統會幫忙處理的欄位,他會記錄這筆資料建立的時間與修改(更新)的時間,這兩種資料對於資料庫非常的重要,這關係到多人存取的問題,因為網路會有delay的情況,因此有可能先下的指令會後到,為了避免這種情況的問題就需要紀錄資料的修改時間與建立時間。
沒有留言:
張貼留言