From 2302493c644b8dbdc5c65a7843e73f69c6e3179d Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Wed, 31 May 2017 09:53:12 +0900 Subject: [PATCH] PERF: N+1 query in search when plugin loads custom fields in `TopicListItemSerializer`. --- app/serializers/search_post_serializer.rb | 2 +- app/serializers/search_topic_list_item_serializer.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 app/serializers/search_topic_list_item_serializer.rb diff --git a/app/serializers/search_post_serializer.rb b/app/serializers/search_post_serializer.rb index b9761970f6c..8f98bebe72d 100644 --- a/app/serializers/search_post_serializer.rb +++ b/app/serializers/search_post_serializer.rb @@ -1,5 +1,5 @@ class SearchPostSerializer < BasicPostSerializer - has_one :topic, serializer: TopicListItemSerializer + has_one :topic, serializer: SearchTopicListItemSerializer attributes :like_count, :blurb, :post_number diff --git a/app/serializers/search_topic_list_item_serializer.rb b/app/serializers/search_topic_list_item_serializer.rb new file mode 100644 index 00000000000..abe002899a3 --- /dev/null +++ b/app/serializers/search_topic_list_item_serializer.rb @@ -0,0 +1,12 @@ +class SearchTopicListItemSerializer < ListableTopicSerializer + attributes :tags, + :category_id + + def include_tags? + SiteSetting.tagging_enabled + end + + def tags + object.tags.map(&:name) + end +end