【问题标题】:ActiveModel::UnknownAttributeError: unknown attribute 'foreign_type' for PaperTrail::VersionAssociationActiveModel::UnknownAttributeError: PaperTrail::VersionAssociation 的未知属性“foreign_type”
【发布时间】:2019-08-06 13:17:13
【问题描述】:

我正在将我的应用程序从 Rails4.2.8 迁移到 Rails5.2.3,将 paper-trail gem 版本“7.1.2”更新到“10.3.1”。我正在使用 Rspec - 3.8.2。一切正常,但我的规格对于使用“has_paper_trail”宏的模型失败了。

尝试查看我的代码以及 gem repo,没有在任何地方找到这样的属性。

发现了一些类似的问题,但没有帮助。 https://github.com/paper-trail-gem/paper_trail/issues/455

ActiveModel::UnknownAttributeError:unknown attribute 'foreign_type' for PaperTrail::VersionAssociation.

【问题讨论】:

  • "更新了 paper-trail gem 版本 7 到 10" .. 我强烈建议一次更新一个主要版本。将 7 更新到 8,确保所有测试通过,确保所有弃用警告都已修复,然后将 8 更新到 9,等等。
  • 我也在迁移并看到这一点。我正在从 Rails 5.3 -> 6.0.1 开始,而 paper_trail 已经在 10.3.1 上。
  • 也处理这个升级一个非常旧的应用程序。可能只是删除纸迹

标签: ruby-on-rails rspec ruby-on-rails-5 paper-trail-gem


【解决方案1】:

升级 gem paper_trail 后,您需要将列 foreign_type 添加到 version_associations 表中。

运行rails g paper_trail_association_tracking:add_foreign_type_to_version_associations,然后迁移您的数据库。

这些更改是在 gem paper_trail-association_tracking 中完成的,这是 paper_trail gem 的依赖项之一。

参考:CHANGELOG

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多