ActiveRecord :: Base上是否有一个方法find_and_update方法,它基本上可以通过它的id查找记录并更新给定的密钥?这将避免必须查询然后更新导致2个查询而不是1。
由于
答案 0 :(得分:6)
活动记录中有一种更新方法,它通过id和updates属性查找。但这会产生两个SQL查询。
update(id, attributes)
例如
Post.update(params[:id], {:title => 'Hello world'})
如果您不想进行验证,可以使用
Post.update_all({:title => 'hello1'}, {:id => params[:id]})
这将只进行一次SQL查询
答案 1 :(得分:1)
User.where(id: id).update_all(foo: bar)
这只生成一个查询。