Mik*_*rin 5 ruby ruby-on-rails
当且仅当模型存在时,我正在尝试更新模型的值.如果没有,我什么都不做.搜索似乎只返回更新或创建问题/答案,但我不想创建.
我知道我可以用一个简单的方法做到:
found = Model.find_by_id(id)
if found
update stuff
end
Run Code Online (Sandbox Code Playgroud)
但是,我觉得有一种方法可以在一次调用中执行此操作,而无需分配任何临时本地值或执行if.
如果不存在噪声错误,如何编写rails调用来更新记录?
最新的Rails 3.x
Pra*_*tki 11
您可以使用尝试调用上的update_attributes的结果之前的Rails的方法find_by_id或where.
trynil如果记录不存在,将以静默方式返回而不引发异常.如果记录存在,它将更新它.
found = Model.find_by_id(id).try(:update_attributes, {key: value})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5102 次 |
| 最近记录: |