У меня есть приложение, которое отслеживает время сотрудников. Сотрудники должны иметь не менее 2 дней каждые 12 дней ... Сотрудник должен ввести запись с логическим значением true для day_off ... но, в случае, если они этого не сделают, я также хочу найти перерывы в днях, которые могли бы также дней выкл. Я пытаюсь просто подсчитывать записи о датах даты на один день, начиная с логического дня_о_оп или перерывать последовательные даты ... и заканчивая на заданную дату.Поиск и подсчет последовательных записей в рубине на рельсах
Это помощник, я работаю над
def consecutive_days_on(user, dutylog)
# dutylog will be supplied via a loop
last_day_off = user.dutylogs.where("entry_date < ?", dutylog.entry_date).where(day_off: true).last
start_date = dutylog.entry_date
if last_day_off.present?
end_date = last_day_off.entry_date
# if the user logged their days off
else
end_date = user.dutylogs.where("entry_date < ?", dutylog.entry_date).last.entry_date
# as of now this just finds the last record...it needs to iterate and increment date to find a break in days on
# to find break in consecutive dates...if user did not log days off
end
user.dutylogs.where("entry_date >= ? AND entry_date <= ?", start_date, end_date).count
# count the records between the two dates...to find consecutive days on
end
Придерживайтесь условностей: оставляйте комментарии * выше * заявления, а не ниже. Извините, я не могу быть другим, кроме как сбросить этот указатель. –