Ruby on Rails中删除对象后无法重新保存的问题求助
问题原因解析
当你调用post1.destroy后,该实例会被ActiveRecord标记为已销毁(调用post1.destroyed?会返回true)。
ActiveRecord内部存在机制,会直接阻止保存已被标记为销毁的实例——这个限制不属于模型的验证逻辑,所以会出现你遇到的矛盾现象:
post1.valid?返回true:所有模型验证规则都满足post1.errors为空数组:没有触发任何验证错误post1.save返回false、save!抛出ActiveRecord::RecordNotSaved:因为ActiveRecord拒绝保存已销毁的实例
如果需要恢复这条帖子数据,你无法直接通过这个已销毁的实例保存,只能重新创建一个新的Post实例,复制原数据后再执行保存操作。
内容的提问来源于stack exchange,提问作者Thảo Nguyễn
相关产品推荐
相关产品推荐

