【发布时间】:2013-08-13 02:28:36
【问题描述】:
上图就是我的意思。 我认为代码应该是这样的:
<% @days_from_this_week.each do |day| %>
<%= day.name %>
<!--e.g. Monday-->
<% day.sessions do |session| %>
<% @session_categories.each do |category| %>
<!--categories means the Sesion1/2/3/4 category
A day's sessionX could be empty, so we have to determine wheather a session matches its cateogry,
and then display it in the table
-->
<% if session.category == category %>
<%= session.content %>
<% end %>
<% end %>
<% end %>
<% end %>
但是如何获得current week?以及如何获得name of a day?要浏览此日历,还需要 pre_week 和 next_week。
我找到了prev_week 和next_week 方法,但似乎一周后的某一天返回,这不是我需要的。
一个可能的解决方案是here,但我不知道如何使用它。
更新: 我找到了一个可行的解决方案,但仍在寻找更好的代码:
<!-- @date = params[:date] ? Date.parse(params[:date]) : Date.today
first=@date.at_beginning_of_week
last=@date.at_beginning_of_week + 6
@days= (first..last).to_a-->
<% @days.each do |day| %>
<div>
<%= day %>
</div>
<% end %>
【问题讨论】:
-
需要更多信息。 @days_from_this_week 和 @session_categories 是什么?它们有什么关系?
-
@days_from_this_week表示本周的天数,这就是我要问的How to get the current week。@session_categories表示一个会话可以属于不同的类别(见表图,有session1/2/3/4),所以我必须循环它们以确定一个会话是否与该类别匹配然后显示。 -
sessionbelongs_tocategory,session有一个date和一个category属性。 -
或者这样说,
@days_from_this_week表示我需要得到all the days(an array) in the current week。例如,[2013/8/12..2013/8/18],所以我可以循环显示每天的会话 -
最后一条评论对我来说更有意义:)
标签: ruby-on-rails date time calendar