0

如何获取为帖子投票的用户名列表,包括他们的 id 和投票日期?

这是我的(工作)解决方案....

voters = []
item.votes_for.each do |vote|
    voters << { updated_at: vote.updated_at, voter_id: vote.voter_id, voter_name: User.find(vote.voter_id).name }
end
json.voters voters
json.up_votes voters.count

我发现这远非最佳...特别是因为对 User.find(...) 的附加查询可能会在有很多选票时导致多个查询。

有没有更“有条理”的方式来实现它?

item.votes_for.voters 提供了用户模型的链接,但如果我这样做,则无法访问投票日期....

谢谢你。

4

1 回答 1

4

我建议在您请求时使用包含将选民包括在您的选票中。

voters = item.votes_for.includes(:voter).map do |vote|
     { updated_at: vote.updated_at, voter_id: vote.voter_id, voter_name: vote.voter.name }
end
于 2017-10-26T10:41:05.107 回答