Rails postgres优化查询的最佳方式 - 填充日历视图

时间:2015-01-30 10:45:55

标签: postgresql ruby-on-rails-4 ruby-2.1

我想构建一个日历全月视图,看起来像这样(简单化):

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表映射到日历月的方法。我不介意有点复杂,但这种蛮力方法感觉不对

0 个答案:

没有答案