告诉Rails只更新空白或零值与完整的API对象

时间:2018-01-16 22:08:11

标签: ruby-on-rails api controller updates

从API中获取一个完整的对象,并将其中的一些值放入Rails中的模型时,如何告诉Rails只更新仍为空/零的模型字段?

假设有10个值来自API,我想要6个模型,但是有些记录已经填充了4个。如何告诉Rails只填写两个空白的,并保留现有的单独?

1 个答案:

答案 0 :(得分:0)

我不确定是否有方法可以执行此操作,但您可以这样做,获取具有零值的属性列表

update_list = model_object.as_json.except(*model_object.attributes.keys)

并更改update_list中的值并执行正常更新model_object.update_attributes(update_list)

如果您收到任何验证错误,可以传递validate: false,如果您可以跳过它们,或者您可以遍历update_list并使用update_attribute代替。