Ram*_*are 6 ruby paper-trail-gem ruby-on-rails-4.2
当我将 Rails 3.2 迁移到 Rails 4.2 时,我使用 paper_trail 来跟踪跨国更改,遇到以下问题:
NoMethodError - 未定义方法“timestamp_sort_order”
在 Rails 6.0.0beta3 上得到这个,因为我修补了 papertrail 并忘记添加PaperTrail::VersionConcern
,例如:
module PaperTrail
class Version < ::ActiveRecord::Base
include PaperTrail::VersionConcern
end
end
Run Code Online (Sandbox Code Playgroud)
PaperTrail::Rails::Engine.eager_load!
没有帮我修好
查看源代码,它直接在ActiveRecord::Base
模型上调用它,它是在PaperTrail::VersionConcern
.
我通过在初始化程序 paper_trail.rb 文件中添加以下行来修复此问题
PaperTrail::Rails::Engine.eager_load!
Run Code Online (Sandbox Code Playgroud)
查看我的最终 intializers/paper_trail.rb 文件
PaperTrail.config.track_associations = false
PaperTrail::Rails::Engine.eager_load!
module PaperTrail
class Version < ActiveRecord::Base
.....
end
end
Run Code Online (Sandbox Code Playgroud)
问题解决了....
已更新我的答案,添加了以下额外行,将其与 Rails 5.2 一起使用
PaperTrail.config.track_associations = false
Run Code Online (Sandbox Code Playgroud)