0%

Ruby on Rails 網站開發 練習 - ActiveRecord - 資料表關連 part 1

ActiveRecord - 資料表關連 part 1

把資料表的『一筆資料』包裝成一個「物件」,並可在物件上增加額外的邏輯操作,讓資料的存取更便利。




到這裡就會有問題:那 Model 到底是什麼?

Model = 依照 Active Record 模式設計的產物

這邊就要提到一個觀念:

  • ORM = Object Relational Mapping (物件關聯對映)
  • 目的:簡化資料庫操作語法
    那又會有一個問題:
    用 ORM 就不需要學 SQL 了?

當然不是!!!



答案:

ActiveRecord 是一種 ORM 的設計框架,目的是希望透過物件的方式來簡化操作資料庫的語法。


慣例優於設定:

Convention over Configuration(CoC)

  • 慣例 = 可以少寫不必要的程式碼

換句話說:學習Rails,等於是在學習Rails的慣例

慣例一:

  • Model:大寫、單數
  • Table:小寫、複數

慣例二:

  • 每個表格預設有一個叫做 id 的流水編號欄位
  • 在 migration 裡預設會有個 timestamps:
    timestamps 會轉變成 created_atupdate_at 這兩個時間欄位
    在資料新增或更新的時候會自動寫入當下時間


答案:
流水編號(id):當資料在新增的時候,它會自動跳號去「累加」。
如果自己手動增加:會有個風險,假設你要手動把某筆 id 是最大的資料取出,手動+1後再存回去資料庫,但是你取出的同時有另外的人也剛好取出同一筆資料,這樣你們兩者回傳回去資料庫的 id 會產生一樣的情況。
為了避免發生這種情況,盡量不要自己手動去做,都交給資料庫系統本身處理就好。



答案:
其實是在 Rails 專案裡面有個檔案 config/initializers/inflection.rb
第6、9、11行解開註解
在第9行去修改它

打開 rails console畫面檢查結果

檔名更類別可以對應:

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