discourse/plugins/poll/app/serializers/poll_option_serializer.rb
Bianca Nenciu 9b0300a647
PERF: Preload voters_count and has_voted (#28808)
These fields are often used when serializing topics which may contain
multiple polls. On average, serializing a poll took 2+N queries where N
is the number of options. This change reduces the number of queries to
3, one for each field (Poll#voters_count, PollOption#voters_count and
Poll#has_voted?).
2024-09-10 18:41:08 +03:00

18 lines
281 B
Ruby

# frozen_string_literal: true
class PollOptionSerializer < ApplicationSerializer
attributes :id, :html, :votes
def id
object.digest
end
def votes
object.voters_count + object.anonymous_votes.to_i
end
def include_votes?
scope[:can_see_results]
end
end