相关疑难解决方法(0)

复制activerecord记录的最简单方法是什么?

我想制作一个activerecord记录的副本,更改进程中的单个字段(除了id).实现这一目标的最简单方法是什么?

我意识到我可以创建一个新记录,然后遍历每个字段逐个复制数据 - 但我认为必须有一个更简单的方法来做到这一点......

如:

 @newrecord=Record.copy(:id)  *perhaps?*
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails rails-activerecord

402
推荐指数
7
解决办法
17万
查看次数

具有嵌入关联的深层克隆文档

您将如何在MongoDB中深入克隆文档(mongoid)

我尝试过这样的事情;

original = Car.find(old_id)
@car = original.clone
@car._id = BSON::ObjectId.new
Run Code Online (Sandbox Code Playgroud)

但是我之后遇到问题的反序列化问题.

如何使用除_id之外的所有文档属性进行深度克隆?

编辑:在遵循Zachary的示例后,我遇到了一些针对重复文档的自定义序列化类的问题.

class OptionHash
  include Mongoid::Fields::Serializable

  # Convert the keys from Strings to Symbols
  def deserialize(object)
    object.symbolize_keys!
  end

  # Convert values into Booleans
  def serialize(object)
    object.each do |key, value|
    object[key] = Boolean::MAPPINGS[value]
  end
end
Run Code Online (Sandbox Code Playgroud)

对于重复文档,对象为零.Car.find(old_id).attributes确实不包含自定义序列化的字段,为什么会这样,我该如何包含它?

mongodb mongoid

6
推荐指数
1
解决办法
4041
查看次数