[Rails] Action Controller Overview
keywords: params
, permit
, fetch
, require
, queryString
在 Rails 中,當我們使用 Scaffold 時,會自動產生幾個 controller,像是 index
, show
, new
, edit
, create
, update
和 destroy
,這幾個是 Rails 中的保留字。
Action Controller Overview @ Rails Guides
Parameters
在網頁應用程式中通常有兩種獲取參數(parameters)的方式:
- 一種是
query string parameters
,這通常是透過GET
方法帶在 URL 的?
後; - 一種是
POST data
,通常是透過POST
方法傳送到後端。
在 Rails 中並沒有區分這兩種 parameters ,他們都可以在 controller 中透過 params
這個 hash 取得。params
這個物件就和 Hash
沒什麼差別,但是可以讓你透過 Symbol
或 String
都可以當作鍵(Key)。
Hash and Array Parameters
Array parameters
如果我們需要傳送陣列資料,可以透過這樣的方式傳送:
GET /clients?ids[]=1&ids[]=2&ids[]=3
在 Controller 中會收到 params[:ids]
等同於 ["1", "2", "3"]
。
注意:parameter 的值總是會是字串,因此 Rails 不需要去猜測它的資料型別。
如果傳送的參數是 [nil]
或 [nil, nil, ...]
那麼基於安全的理由,預設會全部替代為 []
。