團隊在 rails console 用了 ap 來顯示每個指令的執行結果,有好有壞,缺點之一是遇上層層包疊的類別,又沒有特別處理 inspect 方法時,會直接輸出大段文字,格式難看,干擾開發。

其實 ap 會對特定類別調整顯示,例如 ActiveRecord::Base 物件會被顯示為 attributes 的 hash,但想自訂其他規則的話,目前還沒有簡單方法。

最後用了 monkey patch 達成,對想改的類別逐一動手,暫時夠用了。 我改的是 PG::ResultReform::FormTrailblazer::Operation 三個類別,見 gist,放到 Rails 專案的 config/initializers/ 下面。

例子,PG::Result 物件

調整前,顯示的是 inspect 結果,加上 raw 選項會漂亮一些,但資訊不算有用。 調整前

調整後,模仿 AR 顯示查詢出來的記錄。 另外如果有裝 table_print,可以選擇輸出 table 格式。 調整後