7

ActiveRecord::Base 上是否有一个方法 find_and_update 方法,它基本上可以通过它的 id 找到一条记录并更新给定的键?这将避免必须查询然后更新导致 2 个查询而不是 1 个。

谢谢

4

2 回答 2

9

There is an update method in active record, which finds by id and updates attributes. But this will make two sql queries.

update(id, attributes)

eg

 Post.update(params[:id], {:title => 'Hello world'})

If you dont want validations to happen, you could use

Post.update_all({:title => 'hello1'}, {:id => params[:id]})

This will make only one sql query

于 2013-04-12T07:10:25.560 回答
6
User.where(id: id).update_all(foo: bar)

这只会生成一个查询。

于 2017-06-14T21:29:01.097 回答