RubyOnRails =>練習專案筆記(六)

ck100pro
ck100pro
Published in
3 min readNov 6, 2019

接續上一章節,我要要如何處理那個錯誤呢,首先我們要在create方法加入一個clean_params這個變數。

將params.require(:candidate)賦予clean_params變數後面,這段的意思是只要params裡面的:candidate。

permit是將candidate裡面需要的值挑出來。

好了之後要把clean_params這個清洗過的值把他傳給Candidate.new()當作參數。

把clean_params傳給Candidate.new()

當我們我程式改好之後,我們可以回到瀏覽器在各欄位輸入數值並按下送出,此時畫面沒意外會回到首頁畫面,那我們要如何確認資訊是否有存到資料庫呢???………我們可以再開一個終端機進到專案的資料夾裡面並輸入rails c進入控制台,並輸入Candidate.all,我們就可以看到裡面所有的資料了。

黃框代表資料庫裡面的內容

有沒有注意到當表單儲存完畢時就直接回到畫面是不是很奇怪,所以我們可以增加一些提醒的功能,回到controller我們可以在if條件成立後,加上flash並帶上提醒字串。

使用flash

當controller更改完後,我們要轉到index.html我們要引入提醒字串。

引入flash

好了之後我們回到表單新增頁面,並隨便輸入數值並按下按鈕,此時畫面會回首頁並在最上方出現提示訊息。

有提示訊息啦~~~~

最後我們來整理一下controller裡面的程式碼,讓他可讀性更高。

這段最長我們先處理他

我們可以把紅框的部分定義成一個方法,由於這個方法只有應用在controller內部使用所以我們可以把它設在private裡面。

黃框是變更後的樣子,紅框是新定義一個方法

我們把create方法裡的clean_params變數單獨做成一個方法。

--

--