Une question à six faces ! Oh là là. Allons-y ahem rouleau. 1 J'espère que je recevrai 6 fois plus de votes positifs pour ce projet :)
1. MonApp est un module ?
Oui, c'est un module. Il agit comme un "conteneur" pour tout ce qui concerne votre application. Par exemple, vous pouvez définir une classe comme ceci :
module MyApp
class MyFunClass
def my_fun_method
end
end
end
Ensuite, si quelqu'un d'autre a un MyFunClass
il n'y aura pas d'interférence avec votre MyFunClass
. C'est juste une façon agréable de séparer le code.
2. MyApp::Application est un ... ? Quoi, un module aussi ?
MyApp::Application
est en fait une classe, qui hérite de Rails::Application
. Cela permet de faire un certain nombre de choses, y compris la mise en place de l'interface utilisateur. Rails.application
qui est en fait une instance de MyApp::Application
sur lequel vous pouvez faire toutes sortes de choses amusantes, comme envoyer des requêtes à votre application (dans un format rails console
o rails c
session). Ce code, par exemple, effectuera une requête fictive vers le chemin Root de votre application et renverra un tableau de taille 3 qui n'est qu'une simple réponse Rack :
Rails.application.call(Rack::MockRequest.env_for("/"))
Vous pouvez également obtenir les routes pour votre application en appelant ceci :
Rails.application.routes
Les principaux objectif de définir MyApp::Application
ne sont pas ces choses amusantes que vous n'utiliserez probablement jamais, mais plutôt pour que vous puissiez définir une configuration spécifique à l'application à l'intérieur de l'application config/application.rb
. Des choses comme les paramètres à filtrer, le fuseau horaire de l'application ou les répertoires à charger automatiquement. Toutes ces questions sont traitées dans la section Guide de configuration pour Rails .
3. MyApp::Application.configure est une méthode ?
En effet, il s'agit d'une méthode, et elle vous permet d'ajouter des options de configuration supplémentaires à la configuration de votre application après config/application.rb
a été chargé. Vous avez probablement vu cette méthode utilisée dans config/environments/development.rb
ou l'un des deux autres fichiers de ce répertoire, mais fondamentalement, ils utilisent tous les mêmes options comme indiqué dans le fichier Guide de configuration dont vous avez parlé précédemment.
4. config est une variable ? Comment puis-je la voir dans la console ?
Le site config
La "variable" est en fait une méthode définie dans le code utilisé pour l'opération. Rails::Application
et renvoie tout simplement un objet de configuration qui stocke la configuration de l'application.
Pour y accéder dans la console, il suffit d'utiliser Rails.application.config
. Cela retournera une assez grande Rails::Application::Configuration
pour votre plaisir.
5. config.logger est un ? ??
La méthode à laquelle vous faites référence, je suppose, vient de cette ligne dans config/environments/production.rb
:
# Use a different logger for distributed setups
# config.logger = SyslogLogger.new
La méthode dans cet exemple n'est pas config.logger
mais plutôt config.logger=
qui est appelée méthode "setter" au pays de Ruby. La méthode sans le signe égal est appelée "getter". Cette méthode met en place un enregistreur alternatif pour l'environnement de production de Rails, auquel on peut accéder en utilisant la méthode Rails.logger
dans la console ou dans l'application elle-même.
C'est utile si vous voulez envoyer quelque chose dans les journaux, car vous pouvez simplement appeler ce code :
Rails.logger.info("DEBUG INFO GOES HERE")
6. config.paths.log.first est un ... ??? --Dans la console, je vois "MyApp::Application.configure.config.paths.log.first" mais je ne sais pas ce que cela signifie ni comment en extraire des informations.
Dans une application Rails, vous pouvez modifier l'emplacement de certains répertoires. Ainsi, cette config.paths
est un moyen de garder la trace de l'emplacement de ces répertoires. Dans toute ma vie avec Rails, je n'ai jamais eu à utiliser ou à modifier cette variable et cela peut signifier deux choses :
- Il n'est pas souvent utilisé par les programmeurs Rails, ou.. ;
- Je ne mène pas une vie très variée.
Interprétez-le comme vous voulez. Ce que je veux dire, c'est que vous ne l'utiliserez probablement jamais non plus.
J'espère que cela vous aidera à comprendre un peu mieux Rails !
1 Terrible blague sur les dés.