SQL - Joins、Includes 差別在哪裡?

Join and Includes我們在開發的時候免不了關聯資料庫,在撈資料的時候也常常會需要用到 joins 跟 includes 所以,我們什麼時候會用到 joins 跟 includes 要尋找跟其他 model 有關聯的資料 避免 N + 1 問題 ** N + 1 問題是什麼呢?當我們查詢多筆資料時,...

Docker - Dockerfile 基本介紹及指令

我們在先前文章提過,Dockerfile 是我們用來建立 Image 的檔案 我們可以把 Dockerfile 想像成是千層蛋糕每一層為一個 LayerImage 就是層層堆疊後的千層蛋糕 讓我們來看一下 DockerHub 裡的 Ruby 按到 Tags 頁籤,任意按一個版號進去,就會看到像是歷史紀錄的畫面,...

工程師的日常 - 從測試開始 PART 1

身為一個 Rails Developer寫測試是必備的基本功 今天就來跟大家聊聊寫測試這件事 什麼是測試? 為什麼要寫測試? 測試分成哪些類型 有哪些工具可以幫我們完成測試? 測試該從哪開始? 3A 原則 什麼是測試?我們來看看維基百科怎麼定義。 測試 描述一種用來促進鑑定軟體的正確性、完整性、安全性和品...

Rails 的 params 背後的運作巧思

Parameter我們有時候會需要存取參數來作業,在 web application 中會有兩種參數的來源 query string (放在?後面) 以 POST 方法傳送 request 時,data 裡面的 query 在這之前,我們先來看一下 Rails 是怎麼去存取 parameter 的 是的,你...

Rails 網頁加速器 - Turbo

點選按鈕,常常給你一大片空白,或者是一動也不動 這是所謂的 Turbolinks 在作祟 大家都避之唯恐不及的 Turbolinks Rails 團隊為什麼要把它放進來呢? 甚至在 Rails 7 升級成 Turbo ? 加速器Turbolinks 監控網頁中的所有連結,將預設事件停止 並且在按下連結那一刻,T...

從0開始刻 淺談 Rails 的運作魔法 - Day 09 Automatic Loading

在 Rails 中,如果沒有自動載入我們就需要使用 require 來載入相關檔案 有了 automatic loadingRail 會自動載入 lib 、標準函式庫、gem等 Controller 本身是個 class假如今天找不到 Controller 會跑出一串錯誤訊息 const_missing 可以幫我...

從0開始刻 淺談 Rails 的運作魔法 - Day 08 Controller Debug

今天我們來加點 debug 機制吧 用 Rack Environment debug step 1 印出環境變數我們在 a_quote 中把 Rack env 這個東西印出來看看 12345678# quotation/app/controllers/quotes_controller.rbclass Quot...

從0開始刻 淺談 Rails 的運作魔法 - Day 07 建立 Controller

框架終於有一點雛形了相關的 gem 也都安裝完成了接下來就是做 Controller 啦! 首先,我們先將 version 升成 0.0.2 變更 versionstep 1 刪除 rainbow-0.0.1.gemstep 2 git add .step 3 更改 version 為 0.0.2123modul...

從0開始刻 淺談 Rails 的運作魔法 - Day 06 完整框架的基本功能

建立好基本的框架及應用程式後我們要來把框架做得更完善一點啦! debugging我們先從建立 debugging 開始這邊並不是真的寫 debug 功能 而是先用簡單的方式來模擬 debug在之後我們會再更深入的介紹 step 1 在 rainbow 加入 debugging 訊息12345678910111...

Rails 實作應用 - Model 篇

Model我們會把這些東西放在Model 商業邏輯方法 資料驗證(寫入資料庫前) 資料表關聯 商業邏輯方法簡短方法可用 scope 來寫*小提醒:where 都放在 Model 寫,不要放 Controller 1scope :available, -> { where(deleted_at:...