Ruby NoMethodError-未定义的方法`时间戳(timestamp)排序(u order)';用于升级Rails 4.2后的文件跟踪问题
当我将rails 3.2迁移到rails 4.2时,我使用paper_trail跟踪跨国更改,并发现以下问题: NoMethodError-未定义的方法“timestamp\u sort\u order”Ruby NoMethodError-未定义的方法`时间戳(timestamp)排序(u order)';用于升级Rails 4.2后的文件跟踪问题,ruby,ruby-on-rails-4.2,paper-trail-gem,Ruby,Ruby On Rails 4.2,Paper Trail Gem,当我将rails 3.2迁移到rails 4.2时,我使用paper_trail跟踪跨国更改,并发现以下问题: NoMethodError-未定义的方法“timestamp\u sort\u order” 我通过在initializer paper_trail.rb文件中添加以下行来修复此问题 PaperTrail::Rails::Engine.eager_load! PaperTrail.config.track_associations = false PaperTrail::Rails
我通过在initializer paper_trail.rb文件中添加以下行来修复此问题
PaperTrail::Rails::Engine.eager_load!
PaperTrail.config.track_associations = false
PaperTrail::Rails::Engine.eager_load!
module PaperTrail
class Version < ActiveRecord::Base
.....
end
end
请参阅我的最终初始化器/paper_trail.rb文件
PaperTrail::Rails::Engine.eager_load!
PaperTrail.config.track_associations = false
PaperTrail::Rails::Engine.eager_load!
module PaperTrail
class Version < ActiveRecord::Base
.....
end
end
我在rails 6.0.0beta3上得到了这个,因为我修补了papertrail,忘记添加
papertrail::VersionCancern
,例如:
模块书面记录
类版本<::ActiveRecord::Base
包括书面记录::VersionConcern
结束
结束
PaperTrail::Rails::Engine.eager\u加载代码>没有为我修复它
查看直接在ActiveRecord::Base
模型上调用它的方法,它是在Rails 6中的PaperTrail::VersionCancern
上定义的,现在首选的方法是创建模型,不要将模型代码放在初始值设定项中。这就是我正在使用的
module PaperTrail
class Version < ::ActiveRecord::Base
include PaperTrail::VersionConcern
belongs_to :user, foreign_key: :whodunnit
end
end
模块书面记录
类版本<::ActiveRecord::Base
包括书面记录::VersionConcern
属于:用户,外键::whodunnit
结束
结束
您好,此解决方案不适合我。我复制了完全相同的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,这个解决方案只有在初始值设定项配置中声明模块纸面文档时才有效。但是如果我在app/models/paper_trail/version中创建模块PaperTrail,它就会失败。嗨@rameshwar,你能帮我解决这个问题吗?