gpt4 book ai didi

ruby-on-rails-3 - 何时在模型中使用 `save` 与 `save!`?

转载 作者:行者123 更新时间:2023-12-03 05:45:06 28 4
gpt4 key购买 nike

根据save bang your head, active record will drive you mad ,在特殊情况下我们应该避免使用 save!rescue 习惯用法。鉴于此,假设模型需要 @post.mark_rejected

如果 mark_rejected 中的代码由于以下问题之一而失败,是否应该引发异常? :

  • 如果存在验证问题
  • 如果为不可为 null 的字段分配 null
  • 是否与数据库失去连接

如果我们不抛出异常,那么:

  • Controller 操作必须检查 mark_rejected 的返回值并执行该操作
  • 我们不期望该方法调用出现异常,因此我们不在 Controller 操作中编写 rescue 子句,因此异常会冒泡到 (..wherever..) 并且可能会显示为一些(500 HTTP?)错误

示例代码:

def mark_rejected
...
save!
end

def mark_rejected
...
save
end

最佳答案

save! 如果不成功,将引发错误。

save 将返回 bool 值,如 true 或 false。

关于ruby-on-rails-3 - 何时在模型中使用 `save` 与 `save!`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5056385/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com