Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails pry是否缓存每个终端选项卡的本地文件?_Ruby On Rails_Ruby On Rails 6_Pry_Pry Rails - Fatal编程技术网

Ruby on rails pry是否缓存每个终端选项卡的本地文件?

Ruby on rails pry是否缓存每个终端选项卡的本地文件?,ruby-on-rails,ruby-on-rails-6,pry,pry-rails,Ruby On Rails,Ruby On Rails 6,Pry,Pry Rails,我在rails应用程序a(rails版本6.0.2.2)中使用一个本地库(gem),我们称之为B 在A的GEM文件中,我需要B通过: gem 'B', path: '../B' 使用pry执行rails c时,我可以正确访问B及其所有内容。但是,当我对B进行本地更改并重新打开rails c时,这些更改不会反映出来 如果我退出终端(Mac OS)选项卡,在那里我打开了rails c并打开了另一个选项卡,那么我对B所做的所有更改都会突然反映出来 pry是否会在幕后缓存导致这种剥落的任何东西?是的,

我在rails应用程序
a
(rails版本6.0.2.2)中使用一个本地库(gem),我们称之为
B

A
的GEM文件中,我需要
B
通过:

gem 'B', path: '../B'
使用pry执行rails c时,我可以正确访问
B
及其所有内容。但是,当我对
B
进行本地更改并重新打开
rails c
时,这些更改不会反映出来

如果我退出终端(Mac OS)选项卡,在那里我打开了
rails c
并打开了另一个选项卡,那么我对
B
所做的所有更改都会突然反映出来


pry是否会在幕后缓存导致这种剥落的任何东西?

是的,当您进行更改时,Rails不会自动重新加载您的控制台

这是为了防止在将新对象与旧对象混合使用时在控制台中触发意外行为。但是,您可以通过调用来手动重新加载控制台

但是,请注意,对以前对象的所有引用都可能过时。例如:

User.object_id#=>703316501980
user=user.first
#更新代码。。。
重新加载
User.object_id#=>70331615972020

对象id
可以看出,重载后的类不同。因此,
用户
实例在重新加载之前仍将指向代码的第一个版本。在这种情况下,请务必获取新用户。

您应该检查[rails如何重新加载和自动加载类]()。您可能可以尝试
重新加载以重新加载重新加载环境的环境。它与退出控制台和重新开始一样好。