Ruby 在 Rails 上使用 pluck 从 table 到 select 单数日期?

Ruby on Rails using pluck to select singular dates from table?

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

一个会议每天会有多个输入,例如一个人可以在一天中的不同时间举行两到三个不同的会议,请参见下图

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

此代码在 table 之外工作,但不是我希望的方式

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

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

<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> 

也许我做错了,如果有人能指出我最好的方向,我将不胜感激

可能有很多方法可以做到这一点。一个想法是按天提取个别日期, 然后使用范围条件提取与该日期范围匹配的数据。 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>