在實作篇後,我們又重新複習了一下 MVC 架構中的 Controller 和 View,今天再來針對 Model 多一點說明。
使用 generate model 指令會產生幾個檔案
bin/rails generate model Article title:string content:text
重要的是 article.rb
和一個 時間_create_articles.rb
,另外兩個是測試用的程式。 article.rb
定義了 Article
,是我們之後要新增文章、搜尋文章會用到的 class。 時間_create_articles.rb
是一個資料庫遷移(Database Migration)的版本,定義了資料庫定義的變化,例如上面指令我們會產生以下 migration 版本,做的事情是新增一個 table articles
,這張 table 裡面會有 title
、 content
(另外 Rails 會幫忙產生 created_at
和 updated_at
來記錄每筆資料的建立、修改時間)
class CreateArticles < ActiveRecord::Migration[7.0]
def change
create_table :articles do |t|
t.string :title
t.text :content
t.timestamps
end
end
end
這時候還沒有真正對資料庫進行任何操作。接下來我們使用 migrate 的指令後,才會真正執行 migration 版本的內容,對資料庫建立 articles
這張表。
bin/rails db:migrate
再來我們可以進入互動式的環境,來測試一下我們的資料庫。
bin/rails console
我們可以用 Article.new
來生出一筆 article 資料,設定它的 title、content。接著使用 article.save
就可以將該筆資料存到資料庫。
使用 Article.all
可以拿出資料庫中所有的文章;用 Article.first
可以拿第一筆;用 Article.find(x)
可以用這張表的主鍵來指定要拿的某一筆資料。