Rails | attributesメソッド

attributesは、Active Recordオブジェクトの属性のハッシュを返すメソッドです。これにより、Active Recordオブジェクトの属性にアクセスし、更新することができます。

以下は、簡単な例です。Userという名前のモデルがあり、その中にnameageaddressという属性があるとします。

Ruby
class User < ApplicationRecord
end

この場合、Userオブジェクトを作成し、その属性にアクセスする方法は次のとおりです。

Ruby
user = User.new(name: "John", age: 30, address: "123 Main St")

この場合、Userオブジェクトの属性は以下のようになります。

Ruby
{ "id" => nil, "name" => "John", "age" => 30, "address" => "123 Main St", "created_at" => nil, "updated_at" => nil }

このように、idcreated_at、およびupdated_atは自動的に設定されます。

次に、attributesメソッドを使用して、Userオブジェクトの属性を取得する方法を見てみましょう。

Ruby
attributes = User.attributes

この場合、attributes変数には以下のようなハッシュが格納されます。

Ruby
{ "id" => nil, "name" => "John", "age" => 30, "address" => "123 Main St", "created_at" => nil, "updated_at" => nil }

attributesを使用することで、Active Recordオブジェクトの属性に簡単にアクセスできます。例えば、personオブジェクトのname属性を変更するには、次のようにします。

Ruby
user.attributes = { name: "Jane" }

この場合、Userオブジェクトのname属性がJaneに変更されます。