非常简单的问题 - 我只想更新与 2 个参数匹配的记录。
我应该这样做:
Model.where(:email =>"test@test.com",:code => "chejd").update(:password => "password").first
我找到了使用 update_all 的示例,但我只想更新最多 1 条记录。
非常简单的问题 - 我只想更新与 2 个参数匹配的记录。
我应该这样做:
Model.where(:email =>"test@test.com",:code => "chejd").update(:password => "password").first
我找到了使用 update_all 的示例,但我只想更新最多 1 条记录。
检查这是否适用于您的 DBMS 和 DB 适配器:
Model.where(conditions).limit(1).update_all(changes) # => 1
更新:
limit()
andupdate_all()
组合是docs 中的一个示例,因此大多数 DB 适配器可能都支持它。
类似于上面的答案。如果要更新第一条或最后一条记录,可以附加该记录并运行查询。
Model.where(conditions).first.update(changes)
或者Model.where(conditions).last.update(changes)
first - 获取按主键排序的第一条记录 last - 获取按主键排序的最后一条记录