Я пытаюсь уведомить своих клиентов о том, что срок их подписки истечет. Вот как я хочу, чтобы эти пользователи уведомили об этом. Они будет выставлен счет на дату они подписались + 1.year:Один год и один раз в неделю.
User.where(subscribed_at: 53.weeks.ago.beginning_of_day..53.weeks.ago.beginning_of_day)
Мой вопрос будет ли это создать проблему с високосными годами? или есть лучший способ сделать это?
Я думаю, что вы имели в виду использовать диапазон '53 .weeks.ago.beginning_of_day..53.weeks.ago.end_of_day'? Кроме того, почему бы не использовать '(1.year.ago-1.weeks) .beginning_of_day .. (1.year.ago-1.weeks) .end_of_day'? Это позволило бы Rails справиться с Годом (и 28/29 февраля, затем «добавить» неделю к нему) – MrYoshiji
благодарит MrYoshiji. Можете ли вы добавить это к ответу? по какой-то причине я получаю разные даты для '1.year.ago-1.weeks' и' 53.weeks.ago' –
Это потому, что год не строго равен 52 неделям (52 * 7 = 364 дня, один - здесь нет!). Я отправлю ответ в следующую минуту – MrYoshiji