NoMethodError - undefined method `timestamp_sort_order' for Paper trail issue after upgrading Rails 4.2

前端 未结 3 1706
我寻月下人不归
我寻月下人不归 2021-01-19 08:23

I used paper_trail to tracking transnational changes when I migrated rails 3.2 to rails 4.2, have got below issue:

NoMethodError - undefined method `t

相关标签:
3条回答
  • 2021-01-19 09:01

    In Rails 6, the preferred method is now to create a model, do not put model code in the initializer. This is what I'm using...

    module PaperTrail
      class Version < ::ActiveRecord::Base
        include PaperTrail::VersionConcern
    
        belongs_to :user, foreign_key: :whodunnit
      end
    end
    
    0 讨论(0)
  • 2021-01-19 09:05

    got this on rails 6.0.0beta3 because I patched papertrail and forgot to add PaperTrail::VersionConcern, e.g.:

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

    PaperTrail::Rails::Engine.eager_load! did not fix it for me

    looking at the source code it's calling it directly on an ActiveRecord::Base model, it's defined on PaperTrail::VersionConcern.

    0 讨论(0)
  • 2021-01-19 09:17

    I fixed this by adding below line in intializer paper_trail.rb file

    PaperTrail::Rails::Engine.eager_load!
    

    See my final intializers/paper_trail.rb file

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

    Problem resolved....

    Have updated my answer added below line extra using it with rails 5.2

    PaperTrail.config.track_associations = false
    
    0 讨论(0)
提交回复
热议问题