最近在玩資料庫的時候,常常只要撈出Store特定幾個欄位的資料,之前的作法通常是一次把所有Store撈出來,然後在帶到View畫面把想要的欄位顯示出來。
最近用actioncable做作品的時候,發現了一個問題由於一個聊天室裡面有很多的使用者,而每位使用者會有一堆訊息所以在這樣的情況下很容易發生n+1的狀況。
多對多的Model練習,我重新建了一個rails專案,表單只留下必要的欄位,多餘的欄位我都不建立方便觀察。
接下來我要再建立一個叫做Product的Model,將所需要的欄位確認好之後建立,並打開rails專案確認欄位的資訊有沒有有問題。
Rails的Modle關聯性很重要,尤其是在有會員系統的網頁上,其中的多種關聯性必須要很清楚,避免在後面的Modle設計上不良,這篇先對一對一的關聯做做練習,順便做個筆記。
首先我們要在首頁畫面將所有候選人的資料全部顯示出來,所以我們先到controllers,在index這個方法上將資料庫的候選人資料撈出來,我們建立一個實體變數,將Candidate.all賦予給他,其用意為將所有資料全部撈出來。
在來我們要來處理如果表單內的內容有漏填或者是填寫不正確我們要來如何處理這些問題。
接續上一章節,我要要如何處理那個錯誤呢,首先我們要在create方法加入一個clean_params這個變數。
這邊其實有一個小問題,在view裡面基本上只做顯示相關的功能,在裡面增加控制或者是建立東西其實不太適合,這些工作其實交給controller是比較恰當的。
接續上次專案,由於我們可以直接對網頁案右鍵檢視原始碼,所以有心人可以針對這樣子去塞假資料,所以在rails裡如果要提交表單需要給一串算是認證碼的東西,所以我們需要在表單裡面增加一個隱藏欄位。