ruby from_json到实例化对象 - ID未被填充



在我的代码中,我正在尝试动态实例化JSON的ActivereCord模型。样本JSON是:

{"id":10,"name":"XYZ"}

当我尝试从Ruby实例化时:

file_name = "json_file.json"
method = "name"
klass = Kernel.const_get(method.classify)
json = File.read(file_name)
instance = klass.new.from_json(json)

但是,当创建类型Name的实例时,它不包括JSON中的id值。这是零,虽然我希望它为10个指定。

如果我尝试插入instance.save!,那么它每次都会创建一个新的ID,这不是我想要的。

原因是什么?

在Rails中,ActivereCord默认情况下会处理记录ID,因此发生的事情是Rails忽略了您的JSON的"id":10

您需要做的是覆盖ActivereCord的这种默认行为(理想情况下您不应该这样做),尽管您可能会做些什么,但您不确定如何做,请检查此问题出去。这篇文章也可能会阐明该主题。祝你好运。

最新更新