0

您好我正在尝试构建一个 Rails 会议应用程序。我有一张名为 Meetings 的表格,有 4 列name:string start_date:datime end_date:datetime duration:integer

一个会议每天将有多个输入,例如一个人可以有两个或三个不同的会议,在一天中持续不同的时间,见下图

在此处输入图像描述

我希望能够在每次多次会议上显示一个日期,它尝试使用 pluck 但我得到 output = ["2021-08-01", "2021-08-02", "2021-08-06", "2021- 08-07”、“2021-08-10”、“2021-08-05”、“2021-08-28”、“2021-08-29”]

这段代码在表格之外工作,但不是我希望的方式

<%= Meeting.distinct.pluck('date(start_date)')  %> 

如何让它在我的 meeting.index.erb 表视图中工作?

<h1>Meetings</h1>
<table class="table">
  <thead class="thead-dark">
    <tr>
      <th>Name</th>
      <th>Start date</th>
      <th>End date</th>
      <th>Duration</th>
      <th>Duration Time</th>
    </tr>
  </thead>

  <tbody>
    <% @meetings.each do |meeting| %>
      <tr>
        <td><%= meeting.name %></td>
        <td><%= meeting.start_date.strftime("%d-%b-%Y %I:%M %p") %></td>
        <td><%= meeting.end_date.strftime("%d-%b-%Y %I:%M %p") %></td>
        <td><%= meeting.duration %></td>
        <td><%= duration_display meeting  %></td>
      </tr>
    <% end %>
  </tbody>
</table>

<br><br> 

如果有人能指出我最好的方向,我可能会做错事,我将不胜感激

4

1 回答 1

1

可能有很多方法可以做到这一点。一种想法是按天提取各个日期,然后使用范围条件提取与该日期范围匹配的数据。 https://guides.rubyonrails.org/active_record_querying.html#range-conditions

<h1>Meetings</h1>

<table class="table">
  <thead class="thead-dark">
    <tr>
      <th>Name</th>
      <th>Start date</th>
     <th>End date</th>
      <th>Duration</th>
      <th>Duration Time</th>
    </tr>
  </thead>

  <tbody>
  <% @meetings.pluck("start_date").map{ |x| x.to_date}.sort.uniq.each do | date | %>
  <tr>
   <td> <%= date.strftime("%d-%b-%Y") %> </td>
  </tr>
    <% @meetings.where(start_date: (date.to_time)..date.to_time+86399).each do | meeting | %>
      <tr>
        <td><%= meeting.name %></td>
        <td><%= meeting.start_date.strftime("%d-%b-%Y %I:%M %p") %></td>
        <td><%= meeting.end_date.strftime("%d-%b-%Y %I:%M %p") %></td>
        <td><%= meeting.duration %></td>
        <td><%= duration_display meeting.duration %></td>
      </tr>
    <% end %>
  </tbody>
  <% end %>
</table>
<br><br> 

在此处输入图像描述

于 2021-09-06T01:53:02.340 回答