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

ck100pro
ck100pro
Published in
4 min readNov 4, 2019

這邊其實有一個小問題,在view裡面基本上只做顯示相關的功能,在裡面增加控制或者是建立東西其實不太適合,這些工作其實交給controller是比較恰當的。

Candidate.new交給view去做其實不太合適

所以我們把Candidate.new交給controller去做吧。

在controller增加Candidate.new,記得要給一個實體變數

然後我們再把@candidate這個實體變數帶回給view。

把實體變數帶回來

這時我們要開始處理送出去的資料,我們先在瀏覽器上的欄位隨便打一些內容並且送出,這時畫面雖然沒有任何反應,不過我們可以打開終端機可以看到一些訊息。

沒意外你會看到這些訊息

黃色的框框是我們的token值但我們可以先不用裡他,我們的目標是紅色的框框,內容是我們剛剛送出表單的內容,我們這邊可以再做一個動作,由於這些值會送到create這個方法,所以我們可以在上面用一個法方來debug。

在create的方法上打上debugger這個指令

然後我們在重新按下表單的按鈕,這時你會看到網頁上會一直繞圈圈且終端機會停在一個怪怪的畫面。

紅框的處會一直讀取,黃框的地方會顯示這樣的畫面

我們可以在終端機輸入params指令來檢查我們收到的資料。

這一串是我們收到的資料
我們在意的只有紅框的部分

我們可以輸入params[:candidate]來看我們表單的輸入內容

想在看細一點可以多重選取,params[:candidate][:age],類似這樣

只看age的內容

當資料確認完畢時我們可以在終端機上輸入c來停止debug模式

停止debug模式

當我們確認完params時的資料後,我們要開始吧資料存進資料庫裡,所以我們要在carate的方法來把params來的資料給予一個變數,再把這個變數進行save。

這邊把@candidate.save放到if裡面是為了判斷資料在儲存時是否成功save如果失敗的話則用else方式來處理,我們這邊先處理如果save成功的話,我們會轉址到/candidates這個頁面。

轉址到/candidates

好了之後,我們到瀏覽器的畫面,並在各欄位輸入內容並送出。

會發生錯誤訊息

會發生這個訊息錯誤的原因是,我們沒有對這整筆資料去做一個清洗的動作,由於可以直接在瀏覽器增加一個欄位並輸入假資料,所以怕有有心人士會這樣做,所以會有這樣一個確認的動作在,如何解決這問題會在下一篇處理,這篇就先到這邊。

--

--