【发布时间】:2019-03-21 22:15:51
【问题描述】:
我将公司的应用程序从 Rails 5.2.1 更新到 Rails 5.2.2.1。在更新后运行我们的测试套件时,我遇到了在模型范围内验证唯一性的问题,特别是在将模型附加到另一个模型的 ActiveRecord 关系时。例如,在我们的应用程序中,如果我要执行 @person.cars << @car,我们将运行唯一性验证 (validates :car_id, uniqueness: { scope: :group_id }。即使在 @person.cars 最初为空的情况下,我们的更新后分支也会在此引发验证错误唯一性检查。这些测试用例在我们的主分支上工作(更新前),但不在我们的更新分支上(更新后)。除了将 Rails 从 5.2.1 更新到 5.2.2.1 之外,没有对应用程序进行其他更改.我想知道是否有人知道可能导致此问题的与 Rails 5.2.2.1 唯一性验证相关的任何现有错误或问题。我查看了 Rails 和 ActiveRecord 的更改日志,以及一些其他已更新的依赖项,但我一直找不到任何东西。
【问题讨论】:
-
ActiveRecord 是否对您的数据库表进行了任何更改?比如向 person.cars 添加验证要求?在更新期间查看任何 db:migrate 日志/命令?
-
根本没有对数据库进行任何更改,也没有运行任何命令。
-
发布错误会有所帮助。
-
输出的错误信息是我们自己生成的,但它是一个 ActiveRecord::RecordInvalid 错误。
ActiveRecord::RecordInvalid: Validation failed: Form can't be used because one already exists for this vendor. -
Gemfile.lock中的哪些其他依赖项发生了变化?
标签: ruby-on-rails ruby updates