1

我正在努力解决 Rails 5.2.4.1 应用程序的问题。配置如下:

  • 红宝石 2.6.5
  • 导轨 5.2.4.1
    • attr_encrypted 3.1.0

我有一个名为 Chicken 的模型,它有 2 个属性:name- 这是 attr_encrypted 和number- 这是一个普通的整数字段。每当我执行查询以检索除 attr_encrypted 之外的任何其他字段时,它仍会附加到结果中,并且始终是nil

Chicken.select(:number) => #<ActiveRecord::Relation [#<Chicken id: nil, number: nil, name: nil>]>

请记住,这只是一个测试应用程序,我尝试在最初遇到的实际应用程序上执行的查询更复杂。

有没有办法防止 attr_encrypted 将加密字段附加到查询结果?由于当前结果意味着我必须重写应用程序中的所有现有查询或以某种方式为这些类型的字段添加过滤器

4

1 回答 1

0

此问题是由attr_encrypted. 据我所知,没有任何简单的方法可以在不修改库的情况下删除此属性,但没有人积极处理它,因此这似乎不太可能。

据我所知,唯一的选择是:

  • 使用另一个库
  • 覆盖模型attributes方法以排除该值(可能会产生不良结果)。它仍将显示在活动记录提供的其他方法中。
  • 处理它
  • 其他我找不到的东西

有几种方法可以处理它:

于 2021-02-14T23:01:27.370 回答