클래스 메서드에서 특정 클래스에 대해 만든 인스턴스의 이름을 가져 오는 방법이 있습니까? 나는 새로운 해시는 데에 개체의 값을 저장하기 위해 노력하고있어 모듈의 마지막 세 번째 줄에인스턴스 이름 가져 오기
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
을 사용하고 있지만 인스턴스 이름이 아닌 전체 개체를 제공합니다.
위대한 남자, 이것은 내가 찾고 있었던 정확하게 것이다. 엄청 고마워!! –
물론입니다. 다행히 도울 수있어. – Linuxios