【发布时间】:2021-10-12 17:15:44
【问题描述】:
您好,我正在 Rails 中创建一个会议时间保持应用程序,但我遇到了出现多天的总持续时间条目的问题,无论如何要让总数每天出现一次吗?我正在使用 Rails 6.0.4
我的 index.html 文件
<%= month_calendar events: u/meetings do |date, meetings| %>
<%= date %>
<% meetings.each do |meeting| %>
<div class="primary">
<button type="button" class="btn btn-success"> <%= Time.at(meeting.start_time).utc.strftime("%I:%M %P") %></button>
<button type="button" class="btn btn-danger"> <%= Time.at(meeting.end_time).utc.strftime("%I:%M %P") %></button>
<button type="button" class="btn btn-warning" ><%= Time.at(meeting.daily_total_duration).utc.strftime("%H hrs & %M mins ") %></button>
</div>
<% end %>
<% end %>
我的模特会议.rb
class Meeting < ApplicationRecord
before_save :set_duration
def set_duration
self.duration = (end_time - start_time).to_i
end
def daily_total_duration
Meeting.where("start_time >= ? AND end_time < ?", self.start_time.beginning_of_day, self.end_time.end_of_day).sum(:duration)
end
end
有谁知道每天显示一次总持续时间的简单方法?任何帮助将不胜感激
【问题讨论】:
-
带有 btn-warning 类的按钮需要位于
meetings.each do |meeting|块的end之后。它位于块内,因此每次会议都会出现。 -
嗨 Les 感谢您的建议,当我移动该按钮时,我收到以下错误,并且没有任何建议对我有用.....未定义的局部变量或方法 `meeting' 用于 #:0x00007fc8f813b168> 你的意思是?会议@meeting @meetings
-
我不确定你的意图。也许您正在寻找呈现
daily_total_duration方法的值。此方法应在 Meeting 类上定义,例如def self.daily_total_duration(不是该类的实例),您需要将日期传递给您希望计算总数的方法。然后在控制器中,定义一个类似@day_total = Meeting.daily_total_duration(date)的变量,并渲染黄色按钮中返回的值。
标签: ruby-on-rails ruby datetime time