2013-03-26 64 views
0

我有一個mongo數據庫,有幾千個'Ticket'文檔,我可以通過rails控制檯訪問。 對於這些文檔中的一些(但不是全部),當我從控制檯執行以下命令時,出現意外結果:字段的值未更新。 的Rails 1.9.3-P194,蒙戈2.0.4爲什麼分配給mongo文檔字段有時不會進入數據庫?

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" 

這讓我感到困惑。

+0

我建議你去monogodb控制檯,並檢查是否有多個文件符合指定的標準,因爲這可以解釋你看到的行爲。 – WiredPrairie 2013-03-26 00:27:17

+0

看看我更新的答案。 – 2013-03-26 12:59:41

回答

1

請嘗試以下,而不是讓你知道你正在使用同一張車票:

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

好了,從你試圖編輯我的答案好像物體不經過驗證和被正確保存。仔細檢查Ticket模型中的驗證並確保所有需要的列都存在。

+0

謝謝Mind.blank。這確實是問題所在。 – New2Rails 2013-03-26 17:37:30

相關問題