Ruby on rails For循环内For循环带或
我有点卡住了 我想返回我的帖子和我的帖子 我有一个名为“followed_users”的关联,因此我可以呼叫@user.followed_usersRuby on rails For循环内For循环带或,ruby-on-rails,ruby,loops,for-loop,iteration,Ruby On Rails,Ruby,Loops,For Loop,Iteration,我有点卡住了 我想返回我的帖子和我的帖子 我有一个名为“followed_users”的关联,因此我可以呼叫@user.followed_users <% for friends in current_user.followed_users %> <% for post in friends.posts %> <%= post.body %> <% end %> <% end %> 但是,这只适用于“关注用户”的帖子。我
<% for friends in current_user.followed_users %>
<% for post in friends.posts %>
<%= post.body %>
<% end %>
<% end %>
但是,这只适用于“关注用户”的帖子。我还想包括我的帖子。因此,我的计划是首先检查我的帖子,然后遍历所有帖子,看看哪些帖子属于我的用户
我的实现正在返回我的帖子,但不是所有被跟踪的用户
我走对了吗
<% for post in Post.all %>
<% if post.user_id == current_user.id ||
for friends in current_user.followed_users
for post in friends.posts
end
end %>
<li>
<%= post.user.name %>
<%= post.body %>
</li>
<% end %>
<% end %>
不要,真的不要这样做,你负担不起循环所有对象的费用
这样做:
#in a partial, say _post_details.html.erb
<li>
<%= post.user.name %>
<%= post.body %>
</li>
那么在你看来,
<%= render partial: "post_details", collection: @posts, as: :post %>
不要,真的不要这样做,你负担不起循环所有对象的费用 这样做:
#in a partial, say _post_details.html.erb
<li>
<%= post.user.name %>
<%= post.body %>
</li>
那么在你看来,
<%= render partial: "post_details", collection: @posts, as: :post %>
嘿,谢谢你的意见。我试图将结果保存在一次调用中,以便更容易排序。对当前的用户帖子和好友帖子进行排序,并按第一次创建的进行排序。嘿,一个后续问题。ids=current_user.followed_users.map(&:id)+[current_user.id]posts=Post.where(user_id:ids)在来自同一个模型时工作得非常好。但是,如果它们来自不同的型号,您建议我如何处理。不过,当我尝试遍历它们时,它们的不同属性会导致问题,谢谢您的输入。我试图将结果保存在一次调用中,以便更容易排序。对当前的用户帖子和好友帖子进行排序,并按第一次创建的进行排序。嘿,一个后续问题。ids=current_user.followed_users.map(&:id)+[current_user.id]posts=Post.where(user_id:ids)在来自同一个模型时工作得非常好。但是,如果它们来自不同的型号,您建议我如何处理。但是,当我尝试迭代时,它们的不同属性会导致问题