尝试在特定日期查找记录,然后一起添加字段。
days = 7.times
days.each do |day|
today = Date::DAYNAMES[day]
@dailysheets = @timesheet.sheets.where(:date.strftime("%A") == today)
@dailyhours =+ @dailysheets.sum(:hours)
end
问题是我无法在where条件中使用.strftime ...
有没有办法重构这个?
答案 0 :(得分:0)
您必须使用特定于数据库的功能来实现您所需的功能。使用Postgres,您可以通过执行以下操作来实现您所需的目标:
@timesheet.sheets.where("to_char(date, 'day') = ?", Date.today.strftime('%A').downcase)
由于您将手动创建SQL字符串,因此应确保在列名前面加上相应的表名称,以避免在查询中加入其他表时发生列名冲突。