因為 Rails 裡有個功能叫 Mass assignemet 這個功能的主用用途是可以跟 Rails form_with 方法產生的表單做配套,在新增或修改時,可以直接傳入一個 Hash 來設定屬性,所以我們可以直接將網頁表單上的參數直接丟進 params,裡面有很多我表單上的資料,這樣我就不需要一個一個送資料而是一次搞定,但因為表單是 HTML 的表單,如果有惡意使用者,就可以自己新增欄位來攥改表單,因此有了 Strong Parameters。
可以使用 Strong Parameters 來有意識地決定資料表的哪些欄位,可以被寫入資料庫,params.require(:book).permit(:name, :content, :price)
,當出現不符合我規定可寫入的欄位時,只寫入我所允許的我不允許的就會被過濾掉。
因此當你在做新增或修改時沒有用 Strong Parameters 會出現以下錯誤訊息,就是要提醒你使用 Strong Parameters。