Rails 5.2.2.1 ActiveRecord :: RecordInvalid:验证失败

时间:2019-03-21 22:15:52

标签: ruby-on-rails ruby updates

我将公司的应用程序从Rails 5.2.1更新到了Rails 5.2.2.1。在更新后运行我们的测试套件时,我遇到了在模型范围内验证唯一性的问题,特别是将模型附加到另一个模型的ActiveRecord关系时。例如,在我们的应用程序中,如果我要进行@person.cars << @car,我们将运行唯一性验证(validates :car_id, uniqueness: { scope: :group_id }。即使在@person.cars最初为空的情况下,我们的更新后分支这些唯一性检查会在我们的master分支(更新前)上起作用,而在我们的update分支(更新后)上不起作用,除了从5.2更新Rails之外,没有对应用程序进行任何其他更改.1至5.2.2.1。我想知道是否有人知道与Rails 5.2.2.1唯一性验证相关的任何现有错误或问题,我已经浏览了Rails和ActiveRecord的变更日志,以及其他一些依赖关系已更新,但我一直找不到任何东西。

1 个答案:

答案 0 :(得分:0)

看起来这是Rail的ActiveRecord::Associations中所做的更改的一个问题,该更改用于在附加到ActiveRecord关联时删除5.2.1版中的重复项。这绝不会引发RecordInvalid异常,因为重复项将被事先删除。在5.2.2.1中,它似乎已被删除,并且附加到关联的所有重复项都将不再被抢先删除(最有可能模仿Ruby + =功能)。我必须将您对+ =的所有使用更改为与| =的关系,以确保不再添加重复项。

很抱歉,您无法发布任何代码或堆栈跟踪。堆栈跟踪是针对特定应用程序的,根本就没有帮助,并且代码是专有的。感谢帮助!