【Rails】モデル経由で取得したデータを整形して見やすくする方法(便利なデバッグ方法)

rails-prograshi(プロぐらし)-kv Rails
記事内に広告が含まれていることがあります。

Railsではモデルを使ってテーブルの中のデータを取得することができます。

取得してきたデータは改行などがなく1行の文章として表示されるためデータが複数ある場合に視認性が悪いというデメリットがあります。

ここでは、モデル経由で取得してきたオブジェクトデータを見やすく整形する方法について解説しています。


ppメソッド

ppメソッドを使うことでモデル経由で取得してきたデータが適切に改行され、劇的に見やすくなります。

例えば、ppを使うと以下のようになります。

ppを使わないとき(デフォルト)

irb(main):004:0> User.all
  User Load (1.0ms)  SELECT "users".* FROM "users" /* loading for inspect */ LIMIT $1  [["LIMIT", 11]]
=> #<ActiveRecord::Relation [#<User id: 7, name: "test1", age: 20, created_at: "2021-08-12 00:32:11.396402000 +0000", updated_at: "2021-08-13 22:37:35.536631000 +0000">, #<User id: 15, name: "test3", age: 27, created_at: "2021-08-13 23:40:36.712605000 +0000", updated_at: "2021-08-13 23:51:53.706274000 +0000">, #<User id: 8, name: "test2", age: 60, created_at: "2021-08-12 00:32:22.922307000 +0000", updated_at: "2021-08-14 01:14:49.500715000 +0000">, #<User id: 16, name: "test4", age: 45, created_at: "2021-08-14 01:11:03.725969000 +0000", updated_at: "2021-08-14 01:16:14.824369000 +0000">]>

1行なので、データの区切りがわかりにくいです。


ppを使ったとき

pp モデル名.メソッド名

▼実例

irb(main):005:0> pp User.all
  User Load (0.8ms)  SELECT "users".* FROM "users"
[#<User:0x000055b95e8062c8
  id: 7,
  name: "test1",
  age: 20,
  created_at: Thu, 12 Aug 2021 00:32:11.396402000 UTC +00:00,
  updated_at: Fri, 13 Aug 2021 22:37:35.536631000 UTC +00:00>,
 #<User:0x000055b95e806200
  id: 15,
  name: "test3",
  age: 27,
  created_at: Fri, 13 Aug 2021 23:40:36.712605000 UTC +00:00,
  updated_at: Fri, 13 Aug 2021 23:51:53.706274000 UTC +00:00>,
 #<User:0x000055b95e806138
  id: 8,
  name: "test2",
  age: 60,
  created_at: Thu, 12 Aug 2021 00:32:22.922307000 UTC +00:00,
  updated_at: Sat, 14 Aug 2021 01:14:49.500715000 UTC +00:00>,
 #<User:0x000055b95e806070
  id: 16,
  name: "test4",
  age: 45,
  created_at: Sat, 14 Aug 2021 01:11:03.725969000 UTC +00:00,
  updated_at: Sat, 14 Aug 2021 01:16:14.824369000 UTC +00:00>]
=> #<ActiveRecord::Relation [#<User id: 7, name: "test1", age: 20, created_at: "2021-08-12 00:32:11.396402000 +0000", updated_at: "2021-08-13 22:37:35.536631000 +0000">, #<User id: 15, name: "test3", age: 27, created_at: "2021-08-13 23:40:36.712605000 +0000", updated_at: "2021-08-13 23:51:53.706274000 +0000">, #<User id: 8, name: "test2", age: 60, created_at: "2021-08-12 00:32:22.922307000 +0000", updated_at: "2021-08-14 01:14:49.500715000 +0000">, #<User id: 16, name: "test4", age: 45, created_at: "2021-08-14 01:11:03.725969000 +0000", updated_at: "2021-08-14 01:16:14.824369000 +0000">]>

データがレコード毎に整形されて表示されます。各データの中身が分かりやすくなります。

最後に、通常のとおりに取得した1行のデータが表示されます。


ppとは?

なおppとは、Pretty Printの略です。Prettyは見た目がきれいという意味です。

Pretty Printはきれいに整形して出力するという意味になります。

タイトルとURLをコピーしました