接續上一章節,我要要如何處理那個錯誤呢,首先我們要在create方法加入一個clean_params這個變數。
將params.require(:candidate)賦予clean_params變數後面,這段的意思是只要params裡面的:candidate。
permit是將candidate裡面需要的值挑出來。
好了之後要把clean_params這個清洗過的值把他傳給Candidate.new()當作參數。
當我們我程式改好之後,我們可以回到瀏覽器在各欄位輸入數值並按下送出,此時畫面沒意外會回到首頁畫面,那我們要如何確認資訊是否有存到資料庫呢???………我們可以再開一個終端機進到專案的資料夾裡面並輸入rails c進入控制台,並輸入Candidate.all,我們就可以看到裡面所有的資料了。
有沒有注意到當表單儲存完畢時就直接回到畫面是不是很奇怪,所以我們可以增加一些提醒的功能,回到controller我們可以在if條件成立後,加上flash並帶上提醒字串。
當controller更改完後,我們要轉到index.html我們要引入提醒字串。
好了之後我們回到表單新增頁面,並隨便輸入數值並按下按鈕,此時畫面會回首頁並在最上方出現提示訊息。
最後我們來整理一下controller裡面的程式碼,讓他可讀性更高。
我們可以把紅框的部分定義成一個方法,由於這個方法只有應用在controller內部使用所以我們可以把它設在private裡面。
我們把create方法裡的clean_params變數單獨做成一個方法。