2014-12-30 5 views
1

У меня есть следующая структура кода:Вызов функции второго уровня со второго уровня в Рубине

class Test 
    def self.test 
    def something 
     return 'test' 
    end 
    @test = something() 
    print(@test) 
    end 
end 

Если я пытаюсь запустить этот код, Ruby дает мне эту ошибку:

test.rb:33:in тест ': неопределенный метод something' for Test:Class (NoMethodError)

Как я могу назвать эту функцию из данной области?

ответ

0

Область действия, которую вы имеете в виду, относится к классу - Test. Метод something фактически определяется как instance method класса Test. Вы действительно не можете вызывать метод экземпляра из области класса, следовательно, ошибку.

Смежные вопросы