【问题标题】:Rails - Summing an encrypted fieldRails - 对加密字段求和
【发布时间】:2021-10-11 14:09:47
【问题描述】:

我有一个加密列 :amount 之后使用 Lockbox,我需要在我的控制器中求和。

目前,我有 -

transaction_controller.rb 

@one_month_transactions_sum = transactions.where(transaction_date: 1.month.ago..Date.today).sum(:amount).abs()

这给了我错误 - PG::UndefinedColumn: ERROR: column "amount" does not exist LINE 1: SELECT SUM(amount) FROM "transactions" WHERE "transactions".... ,这是有道理的,因为我要求 rails 在我更改为密文的列上使用 PG SUM 函数。

如何将控制器级别的事务与加密列相加?

【问题讨论】:

    标签: ruby-on-rails postgresql encryption


    【解决方案1】:

    如果您将数据作为不透明的二进制 blob 发送到数据库,您(自然)会失去直接在数据库中操作这些字段的能力。看来您唯一的选择是将加密值获取到应用程序中,解密并在 ruby​​ 中求和(慢慢地)。我没有尝试过这个特定的库,但我猜这样的东西应该可以工作:

    transactions.where(...).map(&:amount).sum
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-24
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多