从API中获取一个完整的对象,并将其中的一些值放入Rails中的模型时,如何告诉Rails只更新仍为空/零的模型字段?
假设有10个值来自API,我想要6个模型,但是有些记录已经填充了4个。如何告诉Rails只填写两个空白的,并保留现有的单独?
答案 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
代替。