Clean up N+1 queries
This commit is contained in:
parent
7c2905196f
commit
135eaf8a5e
|
@ -93,19 +93,13 @@ module DiscourseFeatureVoting
|
|||
end
|
||||
|
||||
def who_voted(topic)
|
||||
users = []
|
||||
User.where(id: topic.who_voted).each do |user|
|
||||
users.push(UserSerializer.new(user, scope: guardian, root: 'user'))
|
||||
end
|
||||
return users
|
||||
users = User.find(UserCustomField.where(name: "votes", value: topic.id).pluck(:user_id))
|
||||
ActiveModel::ArraySerializer.new(users, scope: Guardian.new(User.find_by(id: params["user_id"])), each_serializer: UserSerializer)
|
||||
end
|
||||
|
||||
def who_super_voted(topic)
|
||||
users = []
|
||||
User.where(id: topic.who_voted).each do |user|
|
||||
users.push(UserSerializer.new(user, scope: guardian, root: 'user'))
|
||||
end
|
||||
return users
|
||||
users = User.find(UserCustomField.where(name: "super_votes", value: topic.id).pluck(:user_id))
|
||||
ActiveModel::ArraySerializer.new(users, scope: Guardian.new(User.find_by(id: params["user_id"])), each_serializer: UserSerializer)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -86,8 +86,8 @@ export default createWidget('vote-count', {
|
|||
});
|
||||
|
||||
function whoVotedAvatars(user) {
|
||||
return { template: user.user.avatar_template,
|
||||
username: user.user.username,
|
||||
post_url: user.user.post_url,
|
||||
url: Discourse.getURL('/users/') + user.user.username.toLowerCase() };
|
||||
return { template: user.avatar_template,
|
||||
username: user.username,
|
||||
post_url: user.post_url,
|
||||
url: Discourse.getURL('/users/') + user.username.toLowerCase() };
|
||||
}
|
14
plugin.rb
14
plugin.rb
|
@ -67,19 +67,13 @@ after_initialize do
|
|||
end
|
||||
|
||||
def who_voted
|
||||
users = []
|
||||
User.where(id: object.topic.who_voted).each do |user|
|
||||
users.push(UserSerializer.new(user, scope: scope, root: 'user'))
|
||||
end
|
||||
return users
|
||||
users = User.find(UserCustomField.where(name: "votes", value: object.topic.id).pluck(:user_id))
|
||||
ActiveModel::ArraySerializer.new(users, scope: scope, each_serializer: UserSerializer)
|
||||
end
|
||||
|
||||
def who_super_voted
|
||||
users = []
|
||||
User.where(id: object.topic.who_super_voted).each do |user|
|
||||
users.push(UserSerializer.new(user, scope: scope, root: 'user'))
|
||||
end
|
||||
return users
|
||||
users = User.find(UserCustomField.where(name: "votes", value: object.topic.id).pluck(:user_id))
|
||||
ActiveModel::ArraySerializer.new(users, scope: scope, each_serializer: UserSerializer)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue