Mongoid 嵌入式文档中的时间戳

TimeStamps in Mongoid Embedded Documents

我有一个嵌入集合 B 的集合 A。集合 A 和集合 B 包括 Mongoid 时间戳(created_at 和 updated_at)。

现在,当我使用 Rails admin 创建集合 B(嵌入对象)的新条目时,保存在数据库中的时间戳为零。但是,如果我从 rails 控制台或普通 api 创建一个条目,那么保存在数据库中的时间戳不是零。

如有任何帮助,我们将不胜感激。

编辑:

class B
  include Mongoid::Document
  include Mongoid::Timestamps::Created
  include Mongoid::Timestamps::Updated

  field :user_id,    type: String
  field :message,    type: String
  field :status,     type: Integer, default: 1
  field :spam_count, type: Integer, default: 0

  embedded_in :A

Class B嵌入在class A中。当通过rails admin在A内部创建B的条目时,则created_at和updated_at B 的字段被保存为 nil。

没有 class A 或你使用的 mongoid 版本的信息(我假设 5.x)我在这里做了一些疯狂的猜测,你错过了嵌入式上的 cascade_callbacks 标志关系

class A
  include Mongoid::Document
  embeds_many :albums, cascade_callbacks: true
end