activerecord查找和更新

时间:2013-04-12 06:38:58

标签: ruby activerecord

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

由于

2 个答案:

答案 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)

这只生成一个查询。