我已安装 Babble 但不再使用,因此已将其禁用。我本不在意它是否安装,但无论安装与否,我的网站现在都出现了故障。
如果我卸载它,会导致 /g 的群组页面失效:
如果我保留安装但禁用它,会导致我们的自定义摘要功能失效。诚然,这是由我们的 discourse-506investor-digest-plugin 调用的,但看起来 NilClass 的问题出在 babble/app/models/topic.rb 中。
来自 /logs 的日志:
Job exception: undefined method 'id' for nil:NilClass
/var/www/discourse/app/models/topic.rb:470:in 'for_digest'
/var/www/discourse/plugins/babble/app/models/topic.rb:4:in 'for_digest'
/var/www/discourse/app/models/post.rb:99:in 'block in <class:Post>'
activerecord-6.0.3.5/lib/active_record/relation.rb:412:in 'instance_exec'
activerecord-6.0.3.5/lib/active_record/relation.rb:412:in 'block in _exec_scope'
activerecord-6.0.3.5/lib/active_record/relation.rb:784:in '_scoping'
activerecord-6.0.3.5/lib/active_record/relation.rb:412:in '_exec_scope'
activerecord-6.0.3.5/lib/active_record/scoping/named.rb:192:in 'block in scope'
activerecord-6.0.3.5/lib/active_record/relation/delegation.rb:66:in 'block in for_mailing_list'
activerecord-6.0.3.5/lib/active_record/relation.rb:407:in 'block in scoping'
activerecord-6.0.3.5/lib/active_record/relation.rb:784:in '_scoping'
activerecord-6.0.3.5/lib/active_record/relation.rb:407:in 'scoping'
activerecord-6.0.3.5/lib/active_record/relation/delegation.rb:66:in 'for_mailing_list'
/var/www/discourse/plugins/discourse-506investor-digest-plugin/plugin.rb:89:in 'get_favorite_posts'
/var/www/discourse/plugins/discourse-506investor-digest-plugin/plugin.rb:24:in 'block in execute'
/var/www/discourse/lib/distributed_mutex.rb:33:in 'block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in 'synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in 'synchronize'
/var/www/discourse/lib/distributed_mutex.rb:14:in 'synchronize'
/var/www/discourse/plugins/discourse-506investor-digest-plugin/plugin.rb:12:in 'execute'
/var/www/discourse/app/jobs/base.rb:232:in 'block (2 levels) in perform'
rails_multisite-2.5.0/lib/rails_multisite/connection_management.rb:76:in 'with_connection'
/var/www/discourse/app/jobs/base.rb:221:in 'block in perform'
/var/www/discourse/app/jobs/base.rb:217:in 'each'
/var/www/discourse/app/jobs/base.rb:217:in 'perform'
/var/www/discourse/app/jobs/base.rb:279:in 'perform'
mini_scheduler-0.13.0/lib/mini_scheduler/manager.rb:93:in 'process_queue'
mini_scheduler-0.13.0/lib/mini_scheduler/manager.rb:37:in 'block (2 levels) in initialize'