Ruby on rails 返回保存!代码后的值与干
嗨,我正在尝试编写一个功能等同于:Ruby on rails 返回保存!代码后的值与干,ruby-on-rails,save,dry,Ruby On Rails,Save,Dry,嗨,我正在尝试编写一个功能等同于: def model_method(args) ... obj.save! ... void code assuming save! worked ... return obj.save! end 通常我会使用after_save回调,但是有一些参数传递到这个模型的方法中,我需要用于…code…snipit 你有什么办法可以用干的 我希望类似于obj.save!。点击{…}可以工作,但不幸的是不行 保存
def model_method(args)
...
obj.save!
... void code assuming save! worked ...
return obj.save!
end
通常我会使用after_save回调,但是有一些参数传递到这个模型的方法中,我需要用于…code…
snipit
你有什么办法可以用干的
我希望类似于
obj.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
你到底想做什么?对不起,我想我忘了包括这是一个模型方法。我试图保留obj.save的真实返回值代码>在执行一些本来会返回nil
的代码之后。通常情况下,我会在保存后进行回调,但这样我就无法访问传入的args
。最终我只想返回obj.save代码>无需编写两次。更具体地说,我们在保存后会调用一个自定义回调!方法它看起来类似于obj.save!调用\回调(:回调\方法\名称,args)返回obj.save代码>抱歉,我不知道如何在没有新行的情况下不让它看起来很难看。是否希望每次保存模型时都执行此回调。使用after_save
方法。但是在这种情况下,我无法保留传入的参数?这样,我可以手动设置传递到invoke\u callback(…)