如何在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%>
我不确定你的日期字段到底是什么。