有沒有辦法讓我們在一個類的方法創建一個特定的類的實例的名稱?獲得實例名
這就是我想要做的事:
module MyObjectStore
values = {}
temp= {}
define_method :add_check_attribute do |method,*args|
if method.to_s =~ /=$/
temp[method[0..-2]] = args[0]
else
instance_variable_get("@#{method}")
end
end
define_method :method_missing do |method,*args|
add_check_attribute(method,*args)
end
define_method :save do
temp.each {|key,value| instance_variable_set("@#{key}",value)}
values[self] = temp
end
end
class C
include MyObjectStore
end
a = C.new
a.id = 1
a.name = 'gaurav'
a.save
在模塊的第三到最後一行,我試圖對象的值存儲到具有新的散列實例名稱爲關鍵。
就像是可能的東西嗎?
我使用self
現在,但它給整個對象,而不是實例名。
偉大的人, 這正是我一直在尋找的。萬分感謝!! – 2011-12-21 05:30:27
當然。很高興我能幫上忙。 – Linuxios 2011-12-21 15:03:51