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>
您好,我正在尝试构建一个 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>