我是Rails的新手
正如我所做的那样:enter link description here
但是,我在SQLite中添加结束时间数据,我想让日历列表显示如下:
07年2月6日星期六
2008年2月2日星期日
09年2月1日星期一
2月10日星期二
所以,我使用For loop
来做那个
查看:
<% @start_date.each do |day, posts| %>
<% if day.to_date == Date.today %>
<h4 id="today_title">Today <%= day.strftime("%b %d")%></h4>
<% posts.each do |post| %>
<p class="post_title">。<%= post.title %> <%= post.start_time.strftime("%H:%M")%></p>
<%end%>
<%elsif day.to_date == Date.today-1.day %>
<h4 class="other_day_title">Yesterday <%= day.strftime("%b %d")%></h4>
<% posts.each do |post| %>
<p class="post_title">。<%= post.title %> <%= post.start_time.strftime("%H:%M")%></p>
<%end%>
<%elsif day.to_date == Date.today+1.day %>
<h4 class="other_day_title">Tomorrow <%= day.strftime("%b %d")%></h4>
<% posts.each do |post| %>
<p class="post_title">。<%= post.title %> <%= post.start_time.strftime("%H:%M")%></p>
<%end%>
<%else%>
<% posts.each do |post| %>
<% for daytime in post.start_time.to_date..post.end_time.to_date %>
<h4 class="other_day_title"><%= daytime.strftime("%A %b %d") %></h4>
<p class="post_title">。<%= post.title %> <%= post.start_time.strftime("%H:%M")%> to <%= post.end_time.strftime("%A %b %d %H:%M")%></p>
<%end%>
<%end%>
<%end%>
<%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}
@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
我该如何解决?
感谢阅读:)
答案 0 :(得分:0)
您可能希望group_by
日期并列出每个日期的所有活动。它看起来像这样:
<% posts.group_by(&:date).each do |day, posts| %>
<h4 class="other_day_title"><%= day.strftime("%A %b %d") %></h4>
<% posts.each do |post| %>
<p class="post_title">。<%= post.title %> <%= post.start_time.strftime("%H:%M")%> to <%= post.end_time.strftime("%A %b %d %H:%M")%></p>
<%end%>
<%end%>
我不确定你的日期字段到底是什么。