:: Base ist eine Klasse im Modul ActiveRecord. Eines der Dinge, die Module tun, ist Namespacing in Ruby bereitzustellen. In Ruby erben Sie nicht von einem Modul, aber Sie können es mit der Include-Anweisung mischen.
Darf ich vorschlagen, das Spitzhacken-Buch aufzuheben oder Why's (Poignant) Guide to Ruby .
in Ruby, ::
greift auf statische Klassen- oder Modulkonstanten zu. ActiveRecord::Base
gibt an, dass die ActiveRecord
-Klasse oder das Modul eine statische innere Klasse namens Base
aufweist, die Sie erweitern.
Bearbeiten: wie Mike darauf hinweist, in diesem Fall ist ActiveRecord
ein Modul ...
::
ist ein unärer Operator, mit dem Sie auf eine Konstante, ein Modul oder eine Klasse zugreifen können, die in einer anderen Klasse oder einem anderen Modul definiert sind. Es wird verwendet, um Namespaces bereitzustellen, sodass Methoden- und Klassennamen nicht von anderen Autoren mit anderen Klassen in Konflikt geraten.
Wenn Sie ActiveRecord :: Base in Rails sehen, bedeutet das, dass in Rails ActiveRecord::Base
so etwas wie
Dies bedeutet, dass eine Klasse namens Base
innerhalb eines Moduls ActiveRecord
ist, auf die dann als ActiveRecord::Base
Zum besseren Verständnis von :: operator, gehen Sie durch dieses Beispiel von tutorialspoint.com :
%Vor%Tags und Links ruby ruby-on-rails