用户重写这个循环?

我想知道这是否是我想要完成的最佳实践…

首先,我们有模型类别,类别,has_manypost。

现在让我们说,用户添加post。


现在,我有一个页面,我想按类别仅显示当前用户的post。


假设我们有以下类别:A,B和C.

用户1已发布在类别A和B中。


在我看来,我有类似的东西:

 0}.each do |category| %> 

在大多数情况下它几乎就在那里。 问题是,如果在其中输入任何post,它仍然会显示一个空类别(即使当前用户没有在该类别中输入post。

所以问题归结为:

如何使以下循环仅计算当前用户的类别中的post?

0} .each do | category | %>

最好的,艾略特

我会做的事情如下:

 class User < ActiveRecord::Base has_many :posts has_many :categories, :through => :posts, :uniq => true end class Post < ActiveRecord::Base belongs_to :user end class Category < ActiveRecord::Base has_many :posts end # controller @categories = current_user.categories # view <% @categories.each do |category| %> <%= category.name %>
<% category.posts.select {|post| post.user==current_user}.each do |post| %> <%= post.content %>
<% end %> <% end %>