cqc*_*991 10 time calendar ruby-on-rails date

上面的图片就是我的意思.我认为代码应该是这样的:
<% @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 %>
Run Code Online (Sandbox Code Playgroud)
但是如何获得current week?以及如何获得name of a day?并通过这个日历导航,pre_week并且next_week也需要.
我发现prev_week和next_week方法,但似乎在一周后返回某一天,这不是我需要的.
这里有一个可能的解决方案,但我不知道如何使用它.
更新:我找到了一个可行的解决方案,但仍在寻找更好的代码:
<!-- @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 %>
Run Code Online (Sandbox Code Playgroud)
vee*_*vee 12
在您正在设置的控制器中尝试此操作 @days_from_this_week
today = Date.today # Today's date
@days_from_this_week = (today.at_beginning_of_week..today.at_end_of_week).map
Run Code Online (Sandbox Code Playgroud)
为了说明这一点:
> (today.at_beginning_of_week..today.at_end_of_week).map.each { |day| day }
> [Mon, 12 Aug 2013, Tue, 13 Aug 2013, Wed, 14 Aug 2013, Thu, 15 Aug 2013, Fri, 16 Aug 2013, Sat, 17 Aug 2013, Sun, 18 Aug 2013]
Run Code Online (Sandbox Code Playgroud)
发布于以下内容的更新到查询文章的其他请求:
查找开始日期的午夜到第二天之间的所有文章.
start_time = Time.parse(date.to_s)
end_time = 1.day.since(start_time)
Article.where('published_on >= ? and published_on < ?', start_time, end_time)
Run Code Online (Sandbox Code Playgroud)
解决方案就在这里
本周的方法类似于:
def current_week
date = Date.today.beginning_of_week
return (date..date + 6.days).to_a
end
Run Code Online (Sandbox Code Playgroud)
然后,当您有day数组时,可以使用strftime格式化日期
day.strftime("%A") # prints weekday name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9607 次 |
| 最近记录: |