2011-03-22 6 views
1

I는 모듈이 :정의되지 않은 방법, 이유는 무엇입니까?

class Store < ActiveRecord::Base 
    include Room::Chair 

    def self.get_available_chair(user) 
     my_chair=get_chair_type(user) # error: undefined method 'get_chair_type' 
    end 

end 
: 다음

module Room::Chair 

    def get_chair_type(user) 
    .. 
    end 

end 

를, I는 Room::Chair 모듈에서 'get_chair_type'방법을 호출하는 클래스 메소드 'self.get_available_chair'에 클래스가

나는 include Room::Chair을 가지고 있지만 오류가 발생했습니다 정의되지 않은 메서드 'get_chair_type (user)' 왜?

답변

5

include을 사용 했으므로 get_available_chairStore의 클래스 메서드입니다. 클래스 메쏘드에서 인스턴스 메서드 (get_chair_type)를 호출 할 수 없습니다.

get_chair_type을 클래스 메서드로 사용하려면 include 대신 extend을 사용하십시오.

0

당신은 aclass Store의 범위에서 get_available_chair를 정의했기 때문에. 그 클래스 메서드입니다. 인스턴스 메소드 get_chair_type에 대한 액세스 권한이 없습니다.

관련 문제