2016-10-01 73 views
1

說我在rails console做了以下而:在Rails控制檯中創建沒有類的方法時,該方法下的類是什麼?

def test 
    puts "hi" 
end 

我可以運行test和我在控制檯中見喜。我想知道的是這個test方法附加在哪裏?它是一個班級的一部分嗎?有沒有我可以用來確定方法屬於哪裏的命令?

謝謝!

+0

也許這篇文章會提出一些問題 - [Ruby的主要對象(頂級上下文)](https://codequizzes.wordpress.com/2014/04/23/rubys-main-object-top-level-context/) –

回答

1

當你運行你的控制檯時,Ruby創建了一個Object類的對象,所以所有的方法都是Object類的私有實例方法,你可以運行這個來驗證。

 Object.private_instance_methods.include? :test 

所以,當你在控制檯定義你的方法它解釋爲這

class Object 
def test 
    puts "hi" 
end 
end 

更多解釋

我想解釋這一點,但詳細的文章是寫關於這一主題,

https://www.sitepoint.com/rubys-top-self-object/

相關問題