Before we dig in Form_for 或是 form_with 之前,必須先提到form_tag這個即將被淘汰的表單輔助方法 在Rails裡, 我們透過 Action View 得到許多好用的表單輔助方法,而其中最基本的表單方法應屬form_tag了。

symbol1

有注意到嗎? 在”form_tag”是無法綁定MODEL物件的輔助方法,比較適合處理單純的資料傳輸,例如: 網址的鍵入後的傳輸等… 因此好心的Rails提供了另一種可綁定MODEL的選擇”form_for”方法,讓大家可以建立或是修改MODEL的資料

symbol2

以上面的程式碼來說,我們在candidates_controller裡已經設定要接form_for傳遞來的資料

symbol2

當按下SUBMIT按鈕時,strong parameter的機制會驗證並將綁定candidate的params送到在controller內需要它的方法裡。 例如:新增或是修改都可以form_for來協助我們得到乾淨可寫入的params。 那好心人Rails又推出form_for是做什麼呢? 答案: 是來結合 form_tag 跟 form_for 的優點並取代它們

symbol2

這樣是不是就只要一個form_with就把其他的表單輔助方法都取代掉了呢? 感覺最後獲勝的應該就是 form_with 了