在Rails上的嵌套foreach循环中查找唯一记录

时间:2013-04-11 22:02:39

标签: ruby-on-rails-3 loops foreach nested unique

我正在尝试从不同的代码中获取多个帖子,然后是单个用户。

帖子有多个标签,例如: - “没有粉笔的伟大浆果”(consumer webbig data
“宣布干旱的有效方法”(consumer websql

用户遵循多个标签,例如: - John 关注 consumer webbig data

因此,当John登录时,他会看到来自代码consumer webbig data的帖子。 从上面的例子中,John的主页向他显示了以下结果。问题是它们是同一篇文章的重复结果。

“没有粉笔的大浆果”
“没有粉笔的伟大浆果”

Rails代码:

<% @tags.each do |mytag| %>
        <% @posts = Post.tagged_with(mytag.name) %>  

        <% @posts.each do |post| %>
               <div> <%= post.title %></div>
        <% end %> 

<% end %> 

因此,当John登录时,控制器会确定其后续标记并将这些标记传递给对象(@tags)。然后上面的循环为每个标记运行两次并返回相同的帖子,因为它属于两个标记。

我想改进代码,以便它只返回1个结果,即使它发现帖子属于多个标签后跟同一个用户。基本上是多个标签的独特结果。请建议。

1 个答案:

答案 0 :(得分:0)

您是否尝试过Post.tagged_with(mytag.name).uniq