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
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
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
.
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