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はきれいに整形して出力するという意味になります。