0

我有一个 mongo 数据库,其中包含我通过 rails 控制台访问的几千个“票证”文档。对于其中一些(但不是全部)文档,当我从控制台执行以下命令时,我得到了意想不到的结果:字段的值没有更新。导轨 1.9.3-p194,蒙戈 2.0.4

Ticket.where("title" => /failing example/).first.status
=> "Assigned"
Ticket.where("title" => /failing example/).first.status='Completed' 
=> "Completed" 
Ticket.where("title" => /failing example/).first.status
"Assigned" 

嗯?好的,让我们尝试另一种方式。

Ticket.where("title" => /failing example/).first do |t|
    t.status='Completed'
    t.save
 end
 "Completed"
 Ticket.where("title" => /failing example/).first.status
 "Assigned"

这让我很困惑。

4

1 回答 1

1

请尝试以下操作,以便您知道您使用的是同一张票:

@ticket = Ticket.where("title" => /failing example/).first
@ticket.status
=> "Assigned"
@ticket.status = 'Completed'
=> "Completed"
@ticket.status
=> ...

好的,从您尝试的编辑到我的回答,对象似乎没有通过验证并被正确保存。仔细检查Ticket模型中的验证并确保所有必需的列都存在。

于 2013-03-26T00:32:37.653 回答