রেলগুলি ছাড়া এটি করার জন্য, একটি পরিষ্কার উপায় হ'ল ধ্রুবকগুলিতে বৈশিষ্ট্যগুলি সংরক্ষণ করা।
class Gift
ATTRIBUTES = [:name, :price]
attr_accessor(*ATTRIBUTES)
end
এবং তারপর, একটি দৃষ্টান্ত রূপান্তর করতে Gift
একটি থেকে 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}