ruby-on-rails - ActiveRecord update_column : How to increase a record value depending on it's current value with just one query

标签 ruby-on-rails ruby ruby-on-rails-4 activerecord

下面两次访问数据库 - 如何将其减少为单个查询?

@user = User.find(123)
@user.update_column(:views, @user.views + 1)

像这样:

User.find(123).update_column(:views, self.views + 1)

最佳答案

User.where(id: 123).update_all('views = views + 1')

它将产生以下查询:

UPDATE users SET views = views + 1 WHERE users.id = 123

关于ruby-on-rails - ActiveRecord update_column : How to increase a record value depending on it's current value with just one query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41951766/

相关文章:

javascript - 编写一个 ruby​​ gem,向 Rails 添加 js 方法

ruby-on-rails - Rails schema.rb 中 sqlite_sp_functions 的用途是什么?

linux - Rails 4 中客户端 cookie 值是如何生成的?

ruby-on-rails - Rails 4.2 如何计算指纹摘要

sql - 如何从数据库中删除除最大日期外具有相同日期的数据。 rails 3

ruby-on-rails - rails route 的嵌套资源有什么作用?

ruby-on-rails - ROR 中的路由错误

ruby-on-rails - 有什么反对 bitnami.org Ruby/Rails/Redmine Stack 的吗?

ruby-on-rails - 未定义的局部变量或方法 `has_paper_trail'

ruby 和重音字符