我想构建一个日历全月视图,看起来像这样(简单化):
user 1 2 3 4 5 6 7 8 9 10 ...
user one X X X
user two X X X
顶部的1..31是日历日期
这来自以下型号
user has_many leave_requests
leave_request belongs_to user
leave_request has_many leave_days
leave_day belongs_to leave_request
目前,我能让它工作的唯一方法就是蛮力(这是伪编码以节省空间 - 这不是我想要的方式):
<%
@users = User.all
@users.each do |user|
%>
<tr>
<td><%= user.name %></td>
<% (1..31).each do |day| %>
<% user.leave_request.each do |lr| %>
<% lr.leave_dates.each do |ld| %>
<% if ld.date_requested == day %>
<% text = day.date_requested %>
<% else %>
<% text = "" %>
<% end %>
<td><%= text %></td>
<% end %>
<% end %>
<% end %>
</tr>
<% end %>
我想,我真正想要的是一种将日期从leave_days表映射到日历月的方法。我不介意有点复杂,但这种蛮力方法感觉不对