2 votes

Pry met-il en cache des fichiers locaux pour chaque onglet du terminal ?

Je travaille avec une bibliothèque locale (gem), appelons-la B dans mon application rails A (Rails version 6.0.2.2)

En A dans le fichier Gemfile, j'ai besoin de B via :

gem 'B', path: '../B'

Quand je le fais rails c à l'aide d'un levier, je peux accéder B et tout son contenu correctement. Cependant, lorsque j'apporte une modification locale à B et rouvrir rails c les modifications ne sont pas prises en compte.

Si je quitte l'onglet du terminal (Mac OS) dans lequel j'ai ouvert rails c et d'ouvrir un autre onglet, soudainement toutes les modifications que j'ai apportées à B sont reflétés.

Pry cache-t-il quelque chose en coulisses qui provoque cette fragilité ?

0voto

Sunny Points 1468

Oui, votre console n'est pas rechargée automatiquement par Rails lorsque vous faites des changements.

Cela permet d'éviter de déclencher un comportement inattendu dans votre console si vous mélangez de nouveaux objets avec des objets périmés. Cependant, vous pouvez recharger votre console manuellement en appelant reload! .

Notez toutefois que toutes les références à des objets antérieurs peuvent être périmées. Par exemple :

User.object_id # => 70331650131980
user = User.first
# update the code...
reload!
User.object_id # => 70331615972020

Comme vous pouvez le voir dans le object_id la classe n'est pas la même après un rechargement. Par conséquent, la user pointera toujours vers la première version de votre code, avant rechargement. Dans ce cas, veillez à récupérer un nouvel utilisateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X