feat(perf): update query to reduce N+1 impact [CW-1926] (#7228)

* feat: update query to reduce N+1 impact

* feat: remove channel eager loading

fixes the error: ActiveRecord::EagerLoadPolymorphicError Exception: Cannot eagerly load the polymorphic association :channel

* test: fix search test

* chore: revert change
This commit is contained in:
Shivam Mishra
2023-06-02 11:11:55 +05:30
committed by GitHub
parent 68f82c11a5
commit f28533bc47
2 changed files with 4 additions and 4 deletions

View File

@@ -155,9 +155,9 @@ class ConversationFinder
end
def conversations
@conversations = @conversations.includes(
:taggings, :inbox, { assignee: { avatar_attachment: [:blob] } }, { contact: { avatar_attachment: [:blob] } }, :team, :contact_inbox
)
@conversations = @conversations.includes(:taggings, :inbox,
{ assignee: [{ account_users: [:account] }, { avatar_attachment: [:blob] }] },
{ contact: { avatar_attachment: [:blob] } }, :team, :contact_inbox, :messages)
sort_by = SORT_OPTIONS[params[:sort_by]] || SORT_OPTIONS['latest']
@conversations.send(sort_by).page(current_page)
end

View File

@@ -22,7 +22,7 @@ if conversation.messages.first.blank?
elsif conversation.unread_incoming_messages.count.zero?
json.messages [conversation.messages.includes([{ attachments: [{ file_attachment: [:blob] }] }]).last.try(:push_event_data)]
else
json.messages conversation.unread_messages.includes([:user, { attachments: [{ file_attachment: [:blob] }] }]).last(10).map(&:push_event_data)
json.messages conversation.unread_messages.includes([{ attachments: [{ file_attachment: [:blob] }] }]).last(10).map(&:push_event_data)
end
json.account_id conversation.account_id