這邊其實有一個小問題,在view裡面基本上只做顯示相關的功能,在裡面增加控制或者是建立東西其實不太適合,這些工作其實交給controller是比較恰當的。
所以我們把Candidate.new交給controller去做吧。
然後我們再把@candidate這個實體變數帶回給view。
這時我們要開始處理送出去的資料,我們先在瀏覽器上的欄位隨便打一些內容並且送出,這時畫面雖然沒有任何反應,不過我們可以打開終端機可以看到一些訊息。
黃色的框框是我們的token值但我們可以先不用裡他,我們的目標是紅色的框框,內容是我們剛剛送出表單的內容,我們這邊可以再做一個動作,由於這些值會送到create這個方法,所以我們可以在上面用一個法方來debug。
然後我們在重新按下表單的按鈕,這時你會看到網頁上會一直繞圈圈且終端機會停在一個怪怪的畫面。
我們可以在終端機輸入params指令來檢查我們收到的資料。
我們可以輸入params[:candidate]來看我們表單的輸入內容
想在看細一點可以多重選取,params[:candidate][:age],類似這樣
當資料確認完畢時我們可以在終端機上輸入c來停止debug模式
當我們確認完params時的資料後,我們要開始吧資料存進資料庫裡,所以我們要在carate的方法來把params來的資料給予一個變數,再把這個變數進行save。
這邊把@candidate.save放到if裡面是為了判斷資料在儲存時是否成功save如果失敗的話則用else方式來處理,我們這邊先處理如果save成功的話,我們會轉址到/candidates這個頁面。
好了之後,我們到瀏覽器的畫面,並在各欄位輸入內容並送出。
會發生這個訊息錯誤的原因是,我們沒有對這整筆資料去做一個清洗的動作,由於可以直接在瀏覽器增加一個欄位並輸入假資料,所以怕有有心人士會這樣做,所以會有這樣一個確認的動作在,如何解決這問題會在下一篇處理,這篇就先到這邊。