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

时间:2016-06-18 14:38:48

标签: ruby json object instantiation

在我的代码中,我试图从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,这不是我想要的。

可能是什么原因?

1 个答案:

答案 0 :(得分:0)

在Rails中,ActiveRecord默认负责分配记录ID,所以发生的事情是Rails忽略了JSON的这部分"id":10

你需要做的是覆盖ActiveRecord的这种默认行为(理想情况下你不应该这样做),你怎么做我不确定,虽然你可以做些什么,检查{{ 3}}出来this question也可能会对这个话题有所了解。祝你好运。