acts-as-votable :获取一组具有姓名和投票日期的选民
acts-as-votable : Get an array of voters with names and date of voting
如何获取投票给 post 的用户名列表,包括他们的 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(...) 的附加查询可能会导致在有很多选票时进行多次查询。
是否有更多 "railsy" 的实现方式?
item.votes_for.voters 向用户模型提供 link,但如果我这样做,则无法访问投票日期....
谢谢。
我建议在您请求时使用 includes 将选民包括在您的选票中。
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
如何获取投票给 post 的用户名列表,包括他们的 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(...) 的附加查询可能会导致在有很多选票时进行多次查询。
是否有更多 "railsy" 的实现方式?
item.votes_for.voters 向用户模型提供 link,但如果我这样做,则无法访问投票日期....
谢谢。
我建议在您请求时使用 includes 将选民包括在您的选票中。
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