2017/9/14
rails debug 技巧
markdown
在 controller 裡的 action 可以取得 request 物件
```
class TestController < ApplicationController
def index
p request.class
render plain: "ok"
end
end
```
會發現 request 物件是 [ActionDispatch::Request](http://api.rubyonrails.org/classes/ActionDispatch/Request.html) 類別
request.headers 是 [ActionDispatch::Http::Headers](http://api.rubyonrails.org/classes/ActionDispatch/Http/Headers.html) 類別
我們可以用 each 去印出 headers 的所有內容:
```
request.headers.each{|header| p header }
```
仔細觀察會發現 header 是一個長度為2的陣列, header[0] 代表 key,header[1] 則代表 value。
```
def index
headers = request.headers.to_a.keep_if { |header|
header[0].index('HTTP') == 0
}.map{ |header|
"#{header}"
}
render plain: headers.join("\n")
end
```
可以透過 keep_if 保留想要關注的資訊
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言