📑

RailsでActiveRecordインスタンスをハッシュ化する方法

2023/09/07に公開

結論:attributesメソッドを使う

some_instance.attributesでActiveRecordインスタンスをハッシュ化できる。

> user
=>
#<User:0x000000010a4813f8
 id: 7,
 name: "hideyoshi",
 created_at: Wed, 09 Aug 2023 11:18:24.365017000 UTC +00:00,
 updated_at: Wed, 09 Aug 2023 11:18:24.365017000 UTC +00:00>

> user.attributes
=> {"id"=>7, "name"=>"hideyoshi", "created_at"=>Wed, 09 Aug 2023 11:18:24.365017000 UTC +00:00, "updated_at"=>Wed, 09 Aug 2023 11:18:24.365017000 UTC +00:00}

> user.attributes.class
=> Hash

ActiveRecord::Attributes::ClassMethods

to_hでやろうとしていたが、今回の用途には適さなかった。

Discussion