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 に答える