【发布时间】:2015-10-16 03:48:35
【问题描述】:
我正在开发用于数据馈送的 Mongo 文档存储(在 Ruby 中使用 Mongoid)。提要本身有一组已创建和上次更新的字段。我想将它们作为“created_at”和“updated_at”存储在我的 Mongoid 文档中,但 Mongoid 内部不喜欢将它们作为我自己的显式属性,因为它们是您在 a 上声明“include Mongoid::Timestamps”时的字段名称文件。
有没有办法使用“created_at”和“updated_at”作为我自己的字段?还是我需要为这些字段找出不同的名称?
我尝试只定义这些字段,它在第一次创建文档时起作用,但是当我更新它时,我得到如下内容:
/mnt/task/__gems__/gems/mongoid-4.0.2/lib/mongoid/atomic/modifiers.rb:121:in `add_operation': undefined method `each' for "2015-05-18 14:55:07":String (NoMethodError)
from /mnt/task/__gems__/gems/mongoid-4.0.2/lib/mongoid/atomic/modifiers.rb:87:in `block in set'
from /mnt/task/__gems__/gems/mongoid-4.0.2/lib/mongoid/atomic/modifiers.rb:84:in `each_pair'
from /mnt/task/__gems__/gems/mongoid-4.0.2/lib/mongoid/atomic/modifiers.rb:84:in `set'
from /mnt/task/__gems__/gems/mongoid-4.0.2/lib/mongoid/atomic.rb:353:in `generate_atomic_updates'
from /mnt/task/__gems__/gems/mongoid-4.0.2/lib/mongoid/atomic.rb:134:in `block in atomic_updates'
from /mnt/task/__gems__/gems/mongoid-4.0.2/lib/mongoid/atomic.rb:132:in `each'
from /mnt/task/__gems__/gems/mongoid-4.0.2/lib/mongoid/atomic.rb:132:in `atomic_updates'
换句话说,它试图对字符串进行迭代,可能是因为在 Mongoid 中它“相信”它是一个 Date 对象,即使我已经将它定义为一个字符串。
我欢迎任何建议。
【问题讨论】:
-
我想将它们存储为字符串,仅此而已。所以我不想使用 Mongoid::Timestamps 但是当我将“created_at”作为字段名时,它会发生冲突。
-
嗨 mu... 这就是我遇到的问题。我不包括 Mongoid::Timestamps 并且只是将 created_at 声明为 String 字段,但在 Mongoid 中它仍然存在问题(如上面的错误),因为它仍然希望将其视为日期/时间对象,而不是像这样的字符串我已经宣布了。我现在认为这只是 Mongoid 中的一个错误,没有任何解决方法......除了将字段命名为“created_at”以外的其他名称