Rails없이이 작업을 수행하려면 속성을 상수에 저장하는 것이 좋습니다.
class Gift
ATTRIBUTES = [:name, :price]
attr_accessor(*ATTRIBUTES)
end
그리고, 인스턴스 변환하는 Gift
A와 Hash
, 당신은 할 수 있습니다 :
class Gift
...
def to_h
ATTRIBUTES.each_with_object({}) do |attribute_name, memo|
memo[attribute_name] = send(attribute_name)
end
end
end
attr_accessor
모든 인스턴스 변수가 아니라 에 정의한 내용 만 포함하므로이 방법을 사용하는 것이 좋습니다 .
class Gift
ATTRIBUTES = [:name, :price]
attr_accessor(*ATTRIBUTES)
def create_random_instance_variable
@xyz = 123
end
def to_h
ATTRIBUTES.each_with_object({}) do |attribute_name, memo|
memo[attribute_name] = send(attribute_name)
end
end
end
g = Gift.new
g.name = "Foo"
g.price = 5.25
g.to_h
#=> {:name=>"Foo", :price=>5.25}
g.create_random_instance_variable
g.to_h
#=> {:name=>"Foo", :price=>5.25}