diff --git a/app/models/concerns/thredded/post_common.rb b/app/models/concerns/thredded/post_common.rb index 8cc564e4d..379be7f26 100644 --- a/app/models/concerns/thredded/post_common.rb +++ b/app/models/concerns/thredded/post_common.rb @@ -22,6 +22,7 @@ module PostCommon posts_table_name = quoted_table_name result = all owners_by_id = result.each_with_object({}) { |r, h| h[r.postable_id] = r.postable } + next result if owners_by_id.empty? preloader = ActiveRecord::Associations::Preloader.new.preload( owners_by_id.values, :first_post, unscoped.where(<<~SQL.delete("\n")) diff --git a/app/models/thredded/post_moderation_record.rb b/app/models/thredded/post_moderation_record.rb index 0ddd6b504..978d7e675 100644 --- a/app/models/thredded/post_moderation_record.rb +++ b/app/models/thredded/post_moderation_record.rb @@ -31,6 +31,7 @@ class PostModerationRecord < ActiveRecord::Base posts_table_name = Thredded::Post.quoted_table_name result = all owners_by_id = result.each_with_object({}) { |r, h| h[r.post.postable_id] = r.post.postable } + next result if owners_by_id.empty? preloader = ActiveRecord::Associations::Preloader.new.preload( owners_by_id.values, :first_post, Thredded::Post.unscoped.where(<<~SQL.delete("\n")) diff --git a/spec/models/thredded/post_moderation_record_spec.rb b/spec/models/thredded/post_moderation_record_spec.rb new file mode 100644 index 000000000..285f63a2c --- /dev/null +++ b/spec/models/thredded/post_moderation_record_spec.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Thredded::PostModerationRecord do + it 'empty preload_first_topic_post' do + expect { described_class.preload_first_topic_post.to_a }.not_to raise_error + end +end