3
다음과 같은 상황이 발생했습니다.클래스 레벨 메소드를 레일즈에서 별도의 모듈로 확장하는 방법은 무엇입니까?
module Extension
def self.included(recipient)
recipient.extend(ModelClassMethods)
end
module ModelClassMethods
def self.msg
puts 'Hi from module'
end
end
end
class B
include Extension
end
B.msg를 사용할 수없는 이유는 무엇입니까?
>> B.msg
NoMethodError: undefined method `msg' for B:Class
from (irb):16
이 잘못된 생각입니까? 이 모든 것이 성취하기 어려워 야하는 것처럼 보이지 않습니다.
존 : 그것은 전체 코드 샘플 (굵게 변경) 변경 사항 –
좋은 생각 포함하도록 당신이 당신의 예를 편집 할 수 있습니다 - 수행한다. –
일단 메서드를 인스턴스 메서드로 선언했다는 것을 알게되면 즉시 해당 메서드가 클릭됩니다. 감사! – Matthew