我正在使用以下代码向我的用户显示帖子。
_feed.html.erb部分:
<% @posts_by_month.each do |monthname, posts| %>
<%= monthname %>
<ul>
<% posts.each do |post| %>
<li><%= post.created_at %></li>
<% end %>
</ul>
<% end %>
Controller :
def home
if logged_in?
@post = current_user.posts.build
@posts_by_month = current_user.feed.group_by { |post| post.created_at.strftime("%B") }
这使得我的帖子如下:
Post 1
Post 2
Post 3
Post 4
我想更改它,以便帖子显示如下:
Post 1 Post 2 Post 3
Post 4 etc etc
etc
我已经尝试了几种方法,包括 in_groups_of(3) 方法,但是当前的设置方式意味着没有任何效果。我觉得我缺少一个明显的解决方案 - 有人可以帮忙吗?
[编辑以扩展 in_groups_of(3) 错误]
如果我将 _feed 部分中的第 4 行更改为:
<% posts.in_groups_of(3, false).each do |post| %>
它给出了错误:#
最佳答案
#in_groups_of
方法返回一个数组数组,每个数组包含 3 个 Post 对象。
因此,您现在还需要迭代包含三个帖子的返回数组,例如:
<% posts.in_groups_of(3, false).each do |post_group| %>
<% post_group.each do |post| %>
<li><%= post.created_at %></li>
<% end %>
<% end %>
关于ruby-on-rails - (Ruby on Rails) 将帖子按 3 组显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43971271/