html 表格中的突破日期
有没有更简单的方法来做到这一点?
控制器:
def index
@ranches = Ranch.all
dates = (Date.today..Date.today + 52.weeks).select(&:sunday?)
@date_range = dates
dates.each do |date|
month = date.strftime("%b")
year = date.strftime("%Y")
@dates ||= {}
@dates[year] ||= {}
@dates[year][month] ||= []
@dates[year][month] << date
end
视图:
%table{:border => 1}
%thead
%tr
%th{:rowspan => 3}
Ranch
- @dates.each do |year,months|
-# raise months.inspect
%th{:colspan => months.collect{|m| m[1]}.flatten.count }
= year
%tr
- @dates.each do |year,months|
- months.each do |month, days|
%th{:colspan => days.count}
= month
%tr
- @dates.each do |year,months|
- months.each do |month, days|
- days.each do |day|
%th
= day.day
这是我正在获取/寻找的输出:
添加到此,我也将像下面这样(这将是下一行和后续行:
%tbody
- @ranches.each do |ranch|
%tr
%td
= ranch.name
- ranch.placements.each do |placement|
- @date_range.each do |date|
- start_date = date
- end_date = date.end_of_week
- if (start_date..end_date).include?(placement.placement_date)
%td
= placement.value
我还没有弄清楚这部分的 colspan 等。我希望有一些神奇的 Rails 方法来完成这些事情,所以它看起来我的态度更好,工作也更好。对于大多数建议。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看看
Enumerable#group_by
和Enumerable#chunk
!生产:
Behold the power of
Enumerable#group_by
andEnumerable#chunk
!Produces: