【问题标题】:Mongoid - save and update_attribute does not persistMongoid - save 和 update_attribute 不持久
【发布时间】:2012-12-08 09:01:53
【问题描述】:

我正在尝试从我的 Mongo 集合中的记录更新属性,但新值没有被保存。

a = GraphEngine::UserPlace.where(place_id:5000000701039).first
a.place_id = 5000000257690
a.save!
=> true

如果我检查aplace_id 会反映新值5000000257690,但是当我再次加载记录时,新的 place_id 不会保留。

知道为什么会这样吗?我已经检查以确保没有重复记录。

我也试过a.update_attribute(:place_id,5000000257690),但也没有运气。它返回=> true,但该值不会持续存在。

【问题讨论】:

  • 这似乎是一个太大的int,不是吗?您是否尝试过使用较小的 ID?
  • @MrYoshiji type 是 bigint 有关系吗?我最初能够创建具有 bigint 值的对象。
  • Mongo 将 bigint 和 tinyint 都视为整数。

标签: ruby-on-rails ruby ruby-on-rails-3 mongodb mongoid3


【解决方案1】:

检查 place_id 是否可访问。如果没有在模型中添加这样的东西:

attr_accessible :place_id

【讨论】:

  • 谢谢,愚蠢的错误。显然,即使该属性不允许批量赋值,mongo 仍然会返回 true。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多