ruby-on-rails - 有没有一种方法可以添加到数据库列中的现有余额或金额,而无需在更新时替换它?

标签 ruby-on-rails ruby database activerecord

我正在构建一个预算应用程序。所以我需要能够进行存款和取款。但是,更新方法会替换以前的数量而不是添加它。当我用谷歌搜索这个问题时,我得到了事件记录迁移。是否有类似于 update_attributes 的东西可以添加而不是替换?或者是否有以这种方式工作的数据库列类型? 这就是我现在所拥有的。

    def deposit
     account = find_account(params[:id])
     new_balance = account.balance += params[:account][:balance].to_f
     account.assign_attributes(balance: new_balance)
     if account.save
      redirect_to accounts_path
     else
      redirect_to :back
    end
  end

最佳答案

您可以在字段/属性上使用 +=,您不需要 assign_attributes

def deposit
   account = find_account(params[:id])
   account.balance += params[:account][:balance].to_f
   if account.save
     redirect_to accounts_path
   else
     redirect_to :back
   end
end

关于ruby-on-rails - 有没有一种方法可以添加到数据库列中的现有余额或金额,而无需在更新时替换它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28726131/

相关文章:

ruby-on-rails - 如何使用 heroku 在同一个域上运行两个不同的应用程序

ruby-on-rails - 在 RSpec 中测试 Controller 的重定向

ruby - {{ root_url }} 在 Octopress 中是空白的

C# 的 LINQ 用于在 ruby​​ 中等效的集合操作

MySQL如何检查值是否以字母开头并以数字结尾?

css - 我如何告诉 Rails 6 和 webpack 在布局上只使用特定的 css 和 js

ruby-on-rails - Heroku 预编译破坏了我的 JavaScript。没有预编译它会给出 500 服务器错误?

css - 检测 css 文件和 ruby​​ on rails 中的语法错误。无效的 CSS

database - 在客户端和服务器之间共享的代码中表示 DB 实体的惯用方式

java - 在 Java 中存储 Web 爬虫的 URI 的最有效的数据结构