Que signifie: Partie de base signifie en personne < ActiveRecord :: Déclaration de classe de base? Je suis nouveau à ruby et de ce que j'ai rassemblé jusqu'ici, Personne < ActiveRecord devrait être utilisé. Merci.:: Signification de la partie de base dans ActiveRecord :: Base
Répondre
:: Base est une classe dans le module ActiveRecord. Une des choses que font les modules est de fournir un espace de noms dans Ruby. Dans Ruby, vous n'héritez pas d'un module mais vous pouvez le mélanger en utilisant l'instruction include. Puis-je suggérer de prendre le livre Pickaxe ou de lire Why's (Poignant) Guide to Ruby.
dans Ruby, ::
accède à la classe statique ou aux constantes de module. ActiveRecord::Base
indique que la classe ou le module ActiveRecord
a une classe interne statique appelée Base
que vous étendez.
Edit: comme le souligne Mike, dans ce cas ActiveRecord
est un module ...
ActiveRecord est défini comme un module dans Rails, http://github.com/rails/rails/tree/master/activerecord/lib/active_record/base.rb –
::
est un opérateur unaire qui vous permet d'accéder à une constante, un module ou une classe définie dans une autre classe ou un autre module. Il est utilisé pour fournir des espaces de noms afin que les noms de méthodes et de classes ne soient pas en conflit avec d'autres classes d'auteurs différents.
Quand vous voyez ActiveRecord :: Base en Rails cela signifie que dans Rails ActiveRecord::Base
est quelque chose comme ça
module ActiveRecord
class Base
end
end
Cela signifie qu'une classe appelé Base
est à l'intérieur d'un module ActiveRecord
qui est ensuite référencé comme ActiveRecord::Base
Pour une meilleure compréhension de l'opérateur ::, juste passer par cet exemple de tutorialspoint.com:
MR_COUNT = 0 # constant defined on main Object class
module Foo
MR_COUNT = 0
::MR_COUNT = 1 # set global count to 1
MR_COUNT = 2 # set local count to 2
end
puts MR_COUNT # this is the global constant
puts Foo::MR_COUNT # this is the local "Foo" constant
Mike, merci, je vraiment besoin de ramasser la pioche, calembour intentionné ;-) – Valentin
de rien. bonne chance! –