【问题标题】:NoMethodError - undefined method `timestamp_sort_order' for Paper trail issue after upgrading Rails 4.2NoMethodError - 升级 Rails 4.2 后纸迹问题的未定义方法“timestamp_sort_order”
【发布时间】:2015-10-21 09:50:21
【问题描述】:

当我将 rails 3.2 迁移到 rails 4.2 时,我使用 paper_trail 来跟踪跨国变化,遇到以下问题:

NoMethodError - 未定义的方法 `timestamp_sort_order' 用于

【问题讨论】:

    标签: ruby ruby-on-rails-4.2 paper-trail-gem


    【解决方案1】:

    我通过在初始化器 paper_trail.rb 文件中添加以下行来解决此问题

    PaperTrail::Rails::Engine.eager_load!
    

    查看我的最终初始化程序/paper_trail.rb 文件

    PaperTrail.config.track_associations = false
    
    PaperTrail::Rails::Engine.eager_load!
    
    module PaperTrail
    
      class Version < ActiveRecord::Base
        .....
      end
    
    end
    

    问题已解决....

    已经更新了我的答案,在 rails 5.2 中使用它添加了下面的额外内容

    PaperTrail.config.track_associations = false
    

    【讨论】:

    • 嗨,这个解决方案对我不起作用。我复制了我正在使用的确切 paper_trail.rb 文件 ruby​​ '2.1.2'、gem 'rails'、'4.0.1'
    • 请检查您的 paper_trail 版本,我使用的是 paper_trail 4.0.0。可能你最近尝试使用 paper_trail 4.0.0 希望它可以工作。
    • 嗨rameshwar,我能够修复它。我做错的是,我没有创建一个纸迹初始化程序,而是为它创建了一个模型。
    • 嗨,rameshwar,这个解决方案只有在我在初始化配置中声明模块 PaperTrail 时才有效。但是如果我在 app/models/paper_trail/version 中创建模块 PaperTrail,它会失败。
    • 嗨@rameshwar,你能帮我解决这个问题吗? gist.github.com/sbpipb/502a5ff7848991f2e4c7
    【解决方案2】:

    在 rails 6.0.0beta3 上得到了这个,因为我修补了 papertrail 并忘记添加 PaperTrail::VersionConcern,例如:

    module PaperTrail
      class Version < ::ActiveRecord::Base
        include PaperTrail::VersionConcern
      end
    end
    

    PaperTrail::Rails::Engine.eager_load! 没有为我修复它

    查看source code,它直接在ActiveRecord::Base 模型上调用它,它是在PaperTrail::VersionConcern 上定义的。

    【讨论】:

      【解决方案3】:

      在 Rails 6 中,现在首选的方法是创建模型,不要将模型代码放在初始化程序中。这就是我正在使用的......

      module PaperTrail
        class Version < ::ActiveRecord::Base
          include PaperTrail::VersionConcern
      
          belongs_to :user, foreign_key: :whodunnit
        end
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 2015-03-14
        • 2016-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多