close
在 Rails 裡對做 CRUD 時,有個方便的實作。
params 表示 form parameters,為 hash 型式 (column => value),這樣子若要把 form 的資料接過來只需要一行。
除了 new 之外,還支援這樣的方式:
方便歸方便,但也衍生了一個問題,那就是使用者的 form 表單裡塞了一些我們不希望被修改的 column 時,這些指令依然會被執行。
比方說帳號欄位,我們通常是不希望被修改的。
於是這時候可以使用 attr_accessible 或 attr_protected 來保護這些欄位
attr_protected :account
這樣在使用 new, attributes=(attributes), update_attributes(attributes) 時,account 欄位會被保護,不被這些 method 改變其值。
而如果我們真的要改變的話,需要自行指定。
以下是 Rails api 給的範例,可以更清楚我在講什麼
全站熱搜