我正在跟踪哪些用户编辑存储为数据库条目的文本文件。
我有一个信用模型,可以跟踪用户,编辑的文件以及编辑发生的时间戳。
在我的控制器中,我有一个选择条目编辑器的查询,并加入信用模型的时间戳。
@editors = User.select("name, users.id, credit.created_at").joins("INNER JOIN credits ON credits.user_id = users.id WHERE credit.file_id = " + x)
在我看来,我不想显示重复的编辑器,但是加入用户的唯一时间戳会导致重复的编辑器打印
<% @editors.uniq.reverse_each do |e| %>
<%= link_to e.name, user_path(e.id) %>
<%= e.created_at %>
<% end %>
有没有办法可以在我的视图中从uniq比较中排除某个列?
答案 0 :(得分:0)
这不是最干净的解决方案。但如果我是时间紧缩,这就是我要做的事情
<% editor_id = 0 %>
<% @editors.uniq.reverse_each do |e| %>
<% unless editor_id == e.id %>
<%= link_to e.name, user_path(e.id) %>
<%= e.created_at %>
<% editor_id = e.id %>
<% end %>
<% end %>
我在这里做的是初始化一个名为 editor_id 的变量,然后检查它是否与编辑器ID相同。如果为false,则显示编辑器
我希望这有助于您并使您走上正确的轨道