उत्पन्न करें मैं एक हैश (नेस्टेड हैश के साथ) से attr_reader उत्पन्न करने की कोशिश कर रहा हूं ताकि यह example_variable सृजन को स्वचालित रूप से दर्पण कर सके।रूबी: गतिशील रूप से attribute_accessor
data = {:@datetime => '2011-11-23', :@duration => '90', :@class => {:@price => '£7', :@level => 'all'}}
class Event
#attr_reader :datetime, :duration, :class, :price, :level
def init(data, recursion)
data.each do |name, value|
if value.is_a? Hash
init(value, recursion+1)
else
instance_variable_set(name, value)
#bit missing: attr_accessor name.to_sym
end
end
end
लेकिन मैं बाहर कि :(
आप मेरे नए सबसे अच्छे दोस्त हैं !!!! यह सिर्फ काम करता है और इतना आसान है ... रूबी जादू है :) और आप एक स्टार हैं :) (मुझे खुशी है क्योंकि मैंने थोड़ी देर की तलाश की थी) –
बस एक त्वरित सवाल है, क्या नाम का प्रीपेड करने का कोई तरीका है एक्सेसर नाम के लिए हैश है, ताकि मैं my_class.class.price, या ऐसा कुछ कह सकूं? –
सबसे पहले, 'कक्षा' एक आरक्षित कीवर्ड है, इसका उपयोग न करें। आपकी टिप्पणी में आपका दूसरा प्रश्न इस विशेष प्रश्न के दायरे से बाहर चला गया है। हो सकता है कि आप एक नया प्रश्न शुरू करना चाहें, क्योंकि यह रिकर्सन से संबंधित है और ऐसे में, विशेषता एक्सेसर्स के साथ नहीं। (पीएस, सबसे अच्छा जवाब स्वीकार करना न भूलें) – rdvdijk