-1
<% @users.each do |user| %>
<li><%= user.user_id %><%= user.user.name %></li>
查询结果让我
• 1 fred
• 1 fred
• 9 charlie
结果可能是10个不同的用户和/或一些可能是双倍或三倍的结果。我想标记他们出现multipe时。 如何找到用户中哪个user_id的size/count> = 2是最好的方法? 要说清楚:我不想在我的模型中找到双重条目,但在结果中。
解决方案:
<% @users.each do |user| %>
<li class="<%= mark_it(@users, user.user_id) %>"><%= user.user_id %><%= user.user.name %></li>
帮手
def mark_it(users,id)
user_counts = Hash.new(0)
users.each {|user| user_counts[user.user.id] += 1}
ordered_results = user_counts.sort_by{|user| -user_counts[user]}
most_appearances = ordered_results.take_while {|user, count| count >= 2}
top_users = most_appearances.map {|user, count| user}
return 'make_bold' if top_users == [id]
end
@Yule:问题是不清楚的,所以答案是不恰当。 – Werner
@WernerLaude如果问题不清楚,但你仍然试图解决同样的问题,编辑您的原始问题 – Yule
嗨尤尔..我已经尝试过,但...然后没有人再看它了..我找到了帮助和在这里发布结果.. – Werner