按条件Ruby on Rails更新记录

Adi*_*adi 1 ruby-on-rails rails-models

我们可以按条件更新记录而不先检查记录吗?

Hei*_*kki 5

是的,方法是update_all.

# Update all books with 'Rails' in their title
Book.update_all "author = 'David'", "title LIKE '%Rails%'"
Run Code Online (Sandbox Code Playgroud)

http://apidock.com/rails/ActiveRecord/Relation/update_all

  • 是的@Heikki是对的,但请注意,当您使用**update_all**时,它会绕过模型中定义的所有验证.简而言之,它只是生成一个SQL查询并执行它.它绕过整个模型,不会通过活动记录 (2认同)