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 保留想要關注的資訊

沒有留言: