使用where子句更新查询

tom*_*456 7 activerecord ruby-on-rails

非常简单的问题 - 我想只更新一个匹配2个参数的记录.

我应该这样做:

Model.where(:email =>"test@test.com",:code => "chejd").update(:password => "password").first
Run Code Online (Sandbox Code Playgroud)

我找到了使用update_all的示例,但我只想更新最多1条记录.

kri*_*lim 23

检查这是否适用于您的DBMS和DB适配器:

Model.where(conditions).limit(1).update_all(changes) # => 1
Run Code Online (Sandbox Code Playgroud)

更新:

limit()update_all()组合是在文档例子,所以它可能是最DB适配器支持.