我们必须使用具有与删除前相同ID的活动资源来恢复已删除的记录。
a = ActiveResourceModel.new
a.new? # true
a = ActiveResourceModel.new
a.id = 1234
a.new? # false
如果活动资源对象设置了id属性,则始终将其视为已保存对象,并始终尝试更新记录。我们必须创建自定义帖子操作以将id设置为先前的值。还有其他方法吗?
答案 0 :(得分:1)
ActiveResource::Base
来源显示了这一点:
def new?
id.nil?
end
因此您必须覆盖new?
方法,或直接调用私有方法create
class YourModel < ActiveResource::Base
def restore
create
end
# or
def new?
@some_custom_flag_variable ? true : id.nil?
end
end
准备好处理错误,如果id已被占用,但是(谁知道?)