加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 03:47:37 所属栏目:百科 来源:网络整理
导读:当且仅当模型存在时,我正在尝试更新模型的值.如果没有,我什么都不做.搜索似乎只返回更新或创建问题/答案,但我不想创建. 我知道我可以用一个简单的方法做到: found = Model.find_by_id(id)if found update stuffend 但是,我觉得有一种方法可以在一次调用中执
当且仅当模型存在时,我正在尝试更新模型的值.如果没有,我什么都不做.搜索似乎只返回更新或创建问题/答案,但我不想创建.

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

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

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

如果不存在噪声错误,如何编写rails调用来更新记录?

最新的Rails 3.x

解决方法

在find_by_id的结果或其中调用update_attributes之前,可以使用R000方法.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读