您好我正在尝试编写功能相当于的代码:
def model_method(args)
...
obj.save!
... void code assuming save! worked ...
return obj.save!
end
通常我会使用after_save回调,但是有一些参数传递给我需要用于...code...
剪辑的这个模型的方法。
有关如何利用DRY进行此操作的任何想法?
我希望像obj.save!.tap { ... }
之类的东西可行,但不幸的是没有。
答案 0 :(得分:0)
save!
方法将返回true或引发异常,因此您可以安全地执行:
def model_method(args)
#...
obj.save!
#... void code assuming save! worked ...
true
end
但这几乎肯定是错的。你能否更新你的问题,以便明确你实际想要实现的目标是什么?
编辑:
更一般的解决方案:
def model_method(args)
#...
if result = obj.save!
#... void code assuming save! worked ...
end
result
end