0%

Ruby on Rails 網站開發 練習 - 004 (完成新增候選人頁面)

出現錯誤訊息,遇到無效的Token

  • 會出現這個錯誤訊息,是因為Rails要將資料送進資料庫前會做一些驗證的動作。因為只要檢視原始碼,你的路徑都是公開的。
  • 有心人士就可以在要傳送的資料裡面加料,如果你沒有這些驗證的步驟,那不就很危險了嗎?

回到new.html.erb,來增加驗證功能。這行code格式有規定,須依照規定寫。


瀏覽器畫面


但是這樣寫太長也太麻煩了,所以 Rails 有提供小幫手form helper
* form_for()表示要幫某個model做一個表單出來
* 所以form_for(Candidate.new) 表示做一個新的候選人表單出來

來看看form_for() 跟我們自己寫的差別

  • 進到瀏覽器 new 頁面,重新整理,檢視原始碼
    紅色匡:我們自己寫的 ; 綠色匡:form_for()做的

for_for知道action要往哪裡去,也知道用post方法。也幫你產生好了token。是不是非常快速方便!!!
所以可以把我們剛剛自己寫的給刪掉了,直接使用form_for()就可以了。


打開瀏覽器看看畫面長怎樣


一樣有輸入匡,這個就是form.text_field :name產生的。
那我們就可以來增加其他欄位


是不是神奇的做好了欄位?


來看看頁面原始碼吧


這邊有一個欄位需要做些調整,有猜到了嗎?沒錯就是政見的欄位,應該使用form.text_area,因為政見發表應該會需要輸入更多內容。


做點畫面上的美化,並加個標籤給每個欄位吧


打開瀏覽器


到這裡目前新增候選人的頁面就算完成了,下堂課講解,按下送出按鈕後,找到對應的 create action 要如何來處理這筆資料。

參考來源:為你自己學 Ruby on Rails (https://railsbook.tw/)