返回保存! DRY 代码后的值
Returning save! value after code with DRY
您好,我正在尝试编写功能上等同于的代码:
def model_method(args)
...
obj.save!
... void code assuming save! worked ...
return obj.save!
end
通常我会使用 after_save 回调,但是有参数传递到该模型的方法中,我需要将其用于 ...code...
snipit。
关于如何使用 DRY 执行此操作的任何想法?
我希望像 obj.save!.tap { ... }
这样的东西能奏效,但不幸的是没有。
save!
方法将 return 为真或引发异常,因此您可以安全地执行:
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
您好,我正在尝试编写功能上等同于的代码:
def model_method(args)
...
obj.save!
... void code assuming save! worked ...
return obj.save!
end
通常我会使用 after_save 回调,但是有参数传递到该模型的方法中,我需要将其用于 ...code...
snipit。
关于如何使用 DRY 执行此操作的任何想法?
我希望像 obj.save!.tap { ... }
这样的东西能奏效,但不幸的是没有。
save!
方法将 return 为真或引发异常,因此您可以安全地执行:
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