gpt4 book ai didi

ruby-on-rails - 如果存在则更新,否则什么也不做?

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:11 25 4
gpt4 key购买 nike

当且仅当模型存在时,我才尝试更新模型的值。如果没有,我什么都不做。搜索似乎只返回更新或创建问题/答案,但我不想创建。

我知道我可以用一个简单的方法来做到这一点:

found = Model.find_by_id(id)
if found
update stuff
end

但是,我觉得有一种方法可以在一次调用中完成此操作,而无需分配任何临时本地值或执行 if。

如果记录不存在,我该如何编写一个 Rails 调用来更新记录而不出现嘈杂错误?

最新的 Rails 3.x

最佳答案

您可以使用 try在对 find_by_idwhere 的结果调用 update_attributes 之前的 Rails 方法。

如果记录不存在,

try 将静默返回 nil 而不会引发异常。如果记录存在,它将更新它。

found = Model.find_by_id(id).try(:update_attributes, {key: value})

关于ruby-on-rails - 如果存在则更新,否则什么也不做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15534713/

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