7

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

我应该这样做:

Model.where(:email =>"test@test.com",:code => "chejd").update(:password => "password").first

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

4

2 回答 2

24

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

Model.where(conditions).limit(1).update_all(changes) # => 1

更新:

limit()andupdate_all()组合是docs 中的一个示例,因此大多数 DB 适配器可能都支持它。

于 2013-09-25T17:51:47.480 回答
0

类似于上面的答案。如果要更新第一条或最后一条记录,可以附加该记录并运行查询。

Model.where(conditions).first.update(changes)或者Model.where(conditions).last.update(changes)

first - 获取按主键排序的第一条记录 last - 获取按主键排序的最后一条记录

于 2019-03-06T15:37:56.960 回答