2014-11-19 4 views
0

클래스 초기화가 있습니다.레일에서 개인 클래스 메서드에 액세스하는 방법

나는 클래스 메소드

def self.send_mail 
    a = user_stats 
end 

user_stats 개인 방법이며 나는이 메소드를 호출 할 때, 그것은 오류

class << self 

    private 

    def user_stats 
    true 
    end 

end 

내가 접근 시도가 발생을하는 방법 send_mail이 user_stats는

undefined method 'user_stats' for Initialization 

또한

시도 당신의 접근 방식의
class << self 

def self.send_mail 
    a = user_stats 
end 

    private 

    def user_stats 
    true 
    end 

end 

답변

3

모두 정확하지만, 이미 Initialization 년대의 eigenclass에 메소드를 정의 원인 후자에 당신은 self을 사용하지 않아야합니다 :

class Initialization 
    class << self 
    def send_mail 
     a = user_stats 
    end 
    private 
    def user_stats 
     true 
    end 
    end 
end 
Initialization.send_mail 
# => true 

첫 번째 접근 방식은 또한 나를 위해 작동합니다 :

class Initialization 
    def self.send_mail 
    a = user_stats 
    end 
    class << self 
    private 
    def user_stats 
     true 
    end 
    end 
end 
Initialization.send_mail 
# => true 
+1

내가 할 때 '개인 초기화 메소드'user_stats '라는 오류가 발생했습니다 : Class' – Suganya