1

您好,我正在尝试按日期对新闻进行分组。我不明白有什么问题?

feed_entries_controller.rb

def index 
  @feed_entries = FeedEntry.page(params[:page]).per_page(12).where('published_at < ?', DateTime.now) 
  @feed_entries_by_day = @feed_entries.group_by { |t| t.published_at.beginning_of_day }
end

index.html.erb

<% @feed_entries_by_day.each do |day, feed_entries| %>
  <h3><%= h day.strftime("%d %B %Y") %></h3>
  <%= render @feed_entries%>
<% end %>
4

1 回答 1

0

在没有看到数据的情况下,我怀疑我们的问题是published_at列也包含time,我们只是对date查询和分组的部分感兴趣,我们需要在视图中引用分组的数据..

如果是这种情况,我们可以.where()像这样修改我们的条款:

feed_entries_controller.rb

def index
  feed_entries = FeedEntry
    .page(params[:page])
    .per_page(12)
    .where('published_at::date <= ?', Date.current)

  @feed_entries_by_day = feed_entries.group_by { |t| t.published_at.to_date }
end

在我们看来,我们需要选择一个不同的名称来遍历我们的分组feed_entries(我选择了entry

index.html.erb

<% @feed_entries_by_day.each do |day, entry| %>
  <h3><%= h day.strftime("%d %B %Y") %></h3>
  <%= render entry%>
<% end %>
于 2016-09-24T08:32:56.313 回答