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