如何在Ruby On Rails中按星期从星期到结束时间范围进行分组

我是Rails的新手

正如我所做的: 在此处输入链接描述

但是,我在SQLite中添加结束时间数据,我想让日历列表显示如下:

07年2月6日周六

  • 旅行(开始时间)
  • 买一些东西

08年2月的星期日

  • 旅行
  • 照顾妈妈(开始时间)

2009年2月9日

  • 旅行(结束时间)
  • 照顾妈妈

2月10日星期二

  • 照顾妈妈(结束时间)

所以,我使用For loop来做到这一点

视图:

    

Today

Yesterday

Tomorrow

。 to

控制器:

 def index @posts = Post.all.order(:start_time) @date = params[:month] ? Date.parse(params[:month]) : Date.today @start_date = @posts.group_by {|t| t.start_time.to_date} @end_date = @posts.group_by {|t| t.end_time.to_date} end 

我得到了这个:

在此处输入图像描述

它无法将活动分发到每一天的酒吧。

我试着改变控制器

 def index @posts = Post.all.order(:start_time) @date = params[:month] ? Date.parse(params[:month]) : Date.today @start_date = @posts.group_by {|t| t.start_time.to_date..t.end_time.to_date} @end_date = @posts.group_by {|t| t.end_time.to_date} end 

我收到一个错误:

 undefined method `strftime' for Tue, 09 Feb 2016..Wed, 10 Feb 2016:Range 

我该如何解决?

谢谢阅读 :)

您可能希望group_by日期并列出每个日期的所有活动。 它看起来像这样:

 <% posts.group_by(&:date).each do |day, posts| %> 

<%= day.strftime("%A %b %d") %>

<% posts.each do |post| %>

。<%= post.title %> <%= post.start_time.strftime("%H:%M")%> to <%= post.end_time.strftime("%A %b %d %H:%M")%>

<%end%> <%end%>

我不确定你的日期字段到底是什么。