【发布时间】:2013-04-11 22:02:38
【问题描述】:
我正在尝试从不同标签中获取多个帖子,然后是单个用户。
一篇文章有多个标签,例如:-
“没有粉笔的好浆果”(consumer web,big data)
“宣布干旱的有效方法”(consumer web,sql)
用户关注多个标签,例如:-
约翰 关注 consumer web , big data
因此,当 John 登录时,他会看到来自标签 consumer web 和 big 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 个结果。本质上是多个标签的唯一结果。请建议。
【问题讨论】:
标签: ruby-on-rails-3 loops foreach nested unique