首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Mongoid中,我如何使用"created_at“作为我自己的属性?

在Mongoid中,我如何使用"created_at“作为我自己的属性?
EN

Stack Overflow用户
提问于 2015-07-25 23:20:55
回答 1查看 576关注 0票数 0

我正在为数据提要开发一个Mongo文档存储(在Ruby中使用Mongoid )。提要本身有一组已创建和最后更新的字段。我想将它们作为"created_at“和"updated_at”存储在我的Mongoid文档中,但Mongoid内部不喜欢将它们作为我自己的显式属性,因为当您在文档上声明"include Mongoid::Timestamps“时,它们是字段名。

有没有办法使用"created_at“和"updated_at”作为我自己的字段?或者我只需要平底船,并找出这些字段的不同名称?

我尝试只定义这些字段,当文档第一次被创建时,它可以工作,但是当我更新它时,我得到类似如下的结果:

代码语言:javascript
运行
复制
/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对象,尽管我已经将它定义为一个字符串。

我欢迎任何建议。

EN

回答 1

Stack Overflow用户

发布于 2015-07-26 21:52:58

我终于想通了。

首先,如果你想手动设置created_at或updated_at而不是自动设置,你可以在对象上设置它们,然后使用"timeless.save“而不是”timeless.save“。

其次,问题是因为时间戳为字符串类型的对象是一个嵌入式对象,但我忘记了做"embedded_in“反向关系。一旦这样做了,一切就都正常了。

所以这最终只是我没有正确理解嵌入关系的一个问题。我把这篇文章放在一边,以防其他人从中受益。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31628021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档