특정 모듈을 포함하는 모든 클래스를 알려주는 메소드를 작성하려고합니다. 모양은 다음과 같습니다. -레일즈에서 실행되는 Ruby 클래스에 모듈이 포함되는시기는 언제입니까?
def Rating.rateable_objects
rateable_objects = []
ObjectSpace.each_object(Class) do |c|
next unless c.include? Rateable
rateable_objects << c
end
rateable_objects
end
"평가 대상"은 여러 모델에 포함 된 모듈입니다.
내가 찾는 것은 레일 콘솔을 부팅하거나 서버를 실행 한 직후에이 메소드를 호출하면 []를 반환한다는 것입니다. 하지만 먼저 소비 모델 중 하나의 인스턴스를 인스턴스화하면 결과에서 해당 모델을 반환합니다.
언제 모듈이 포함될 예정입니까? 나는 그가 응용 프로그램이 시작될 때보 다 나중에 프로세스에서 추측하고 있습니다. 내가이 정보를이 과정에서 일찍 얻을 수 없다면, 어쨌든 이것을 달성 할 수 있습니까?
모듈을 포함하는 모델이 호출 될 때로드 될 것이라고 생각합니다. –