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!。点击{…}
可以工作,但不幸的是不行

保存
 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(…)