질문 제목에서 알 수 있듯이 모듈에 포함 된 후크가 있습니다.
def self.included(base)
puts 'included'
base.extend API
end
내 API는 개체에 특정 변수가 있어야하지만 생성되는 변수가 없습니다.
난 노력 했어:
base.variable_name = []
%x|#{base}.variable_name = []|
base.instance_variable_set(:@variable_name,[])
base.instance_exec{@variable_name = []}
base.instance_exec
사용self
base
그러나 그들 중 어느 것도 작동 variable_name=
하지 않으며 콘솔 은 존재하지 않는다고 불평 합니다.
도대체 뭐야?
included
후크 내부의 기본 개체에 변수가 존재하도록하려면 어떻게해야 합니까?
결국, 나는 @variable_name ||= []
그것을 작동시키기 위해 함수 정의 자체 내부 를 사용해야했다 . 나는 그것을 좋아하지 않지만 작동한다.
왜 내가 좋아하지 않는지 알고 싶다면 객체 속성을 한 번에 정의하면 정의 된 위치를 쉽게 찾고 초기 값을 변경할 수 있지만 여기서 변경하려면 추적해야하기 때문입니다. 원칙입니다).
개인적 선호도 같아요.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다