Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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中未反映Db变化_Ruby On Rails_Postgresql_Pry - Fatal编程技术网

Ruby on rails pry中未反映Db变化

Ruby on rails pry中未反映Db变化,ruby-on-rails,postgresql,pry,Ruby On Rails,Postgresql,Pry,我试图测试我的代码的线程安全性,我得到了一个奇怪的行为——对db的更改(通过psql或rails控制台进行)没有反映在pry中 在pry中: pry > MyObject.first.name => "Name" pry > MyObject.first.update( name: "Pry" ) => true pry > MyObject.first.name => "Pry" 在控制台中: console > MyObject.first.na

我试图测试我的代码的线程安全性,我得到了一个奇怪的行为——对db的更改(通过psql或rails控制台进行)没有反映在pry中

在pry中:

pry > MyObject.first.name
=> "Name"
pry > MyObject.first.update( name: "Pry" )
=> true
pry > MyObject.first.name
=> "Pry"
在控制台中:

console > MyObject.first.name
=> "Name" 
console > MyObject.first.update( name: "Console" )
=> true 
console > MyObject.first.name
=> "Console" 
console > MyObject.first.name
 => "Pry" # the change IS reflected
我使用psql验证了名称是“Console”

现在在pry:

pry > MyObject.first.name
=> "Name" # the change is NOT reflected!
如果我做相反的方向,在pry中进行更改,这些更改会被反映出来

在pry中:

pry > MyObject.first.name
=> "Name"
pry > MyObject.first.update( name: "Pry" )
=> true
pry > MyObject.first.name
=> "Pry"
在控制台中:

console > MyObject.first.name
=> "Name" 
console > MyObject.first.update( name: "Console" )
=> true 
console > MyObject.first.name
=> "Console" 
console > MyObject.first.name
 => "Pry" # the change IS reflected
我使用psql验证了名称是“Pry”


会发生什么事?模型不应该总是从数据库加载最新的属性吗

不要先使用
,然后使用ID实际加载对象,以检查它是否实际相同。还要检查启动控制台时是否没有创建其他对象。MyObject.find(id)会给出相同的结果