Rails Console がしんどい人への hirb のススメ

Rails Console で、ActiveRecord の結果を出力すると、どうにも使いにくいです。
Q. なぜか?
A. オブジェクトの羅列表示されて見難いから
(ごく個人的な感想です。)

対応方法を見つけたので、記録しておきます。

目次

参考

hirb の導入

Rails Console で、ActiveRecord の結果を出力する。
オブジェクトの羅列なので並び替えの結果を調べる際など、とても見にくい。
これを解決できる gem がありました。
hirbです。

こちらを導入します。

前提

Rails アプリケーションを用意してある前提で進めます。

導入

Gemfile に以下を記述する。

Gemfile
1
2
gem 'hirb' # hirb本体
gem 'hirb-unicode' # 全角文字列使いたいなら導入。(ほぼ必須?)

bundle installを実行してインストール。

使ってみる

それでは hirb を使ってみます。
既にusersテーブルと、Userモデルがあるものとします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Rails Console の開始
>bundle exec rails c

# 普通の検索結果
irb(main):001:0> User.all
(0.3ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
User Load (0.3ms) SELECT `users`.* FROM `users` LIMIT 11
=> #<ActiveRecord::Relation [#<User id: 1, name: "A", created_at: "2020-10-02 15:59:36", updated_at: "2020-10-02 15:59:36">, #<User id: 2, name: "B", created_at: "2020-10-02 15:59:36", updated_at: "2020-10-02 15:59:36">, #<User id: 3, name: "C", created_at: "2020-10-02 15:59:36", updated_at: "2020-10-02 15:59:36">]>

# hirbを有効化
irb(main):002:0> Hirb.enable
=> true

# hirbを有効化した検索結果
irb(main):003:0> User.all
User Load (0.3ms) SELECT `users`.* FROM `users`
+----+------+-------------------------+-------------------------+
| id | name | created_at | updated_at |
+----+------+-------------------------+-------------------------+
| 1 | A | 2020-10-02 15:59:36 UTC | 2020-10-02 15:59:36 UTC |
| 2 | B | 2020-10-02 15:59:36 UTC | 2020-10-02 15:59:36 UTC |
| 3 | C | 2020-10-02 15:59:36 UTC | 2020-10-02 15:59:36 UTC |
+----+------+-------------------------+-------------------------+
3 rows in set

# hirbを無効化するときは.disableを実行
irb(main):004:0> Hirb.disable
=> false

irb(main):005:0> User.all
User Load (0.6ms) SELECT `users`.* FROM `users` LIMIT 11
=> #<ActiveRecord::Relation [#<User id: 1, name: "A", created_at: "2020-10-02 15:59:36", updated_at: "2020-10-02 15:59:36">, #<User id: 2, name: "B", created_at: "2020-10-02 15:59:36", updated_at: "2020-10-02 15:59:36">, #<User id: 3, name: "C", created_at: "2020-10-02 15:59:36", updated_at: "2020-10-02 15:59:36">]>

hirb を有効化することで表示形式が変更され、とても見やすくなりました。


今回は、hirb を使ってみました。
有効化することで、結果を目と指で追っていた時よりとても効率が良くなります。

ではでは。