Size: a a a

Saint P Ruby Community

2020 September 07

AD

Anton Davydov in Saint P Ruby Community
Vsevolod Avramov
Как раньше было:
orders_count = Order.last.id - Order.previous_day.last.id
источник

T

Tharin in Saint P Ruby Community
Alexander Pavlyut
Вабсарвар девелопер
О, вы тоже знаток Дургасофта
источник

AP

Alexander Pavlyut in Saint P Ruby Community
Мы все тут немного знатоки
источник

АШ

Алексей Шеин... in Saint P Ruby Community
Vsevolod Avramov
Как раньше было:
orders_count = Order.last.id - Order.previous_day.last.id
А вот так нельзя было?
Order.where(created_at: 1.day.ago..Time.current).count
источник

VA

Vsevolod Avramov in Saint P Ruby Community
Алексей Шеин
А вот так нельзя было?
Order.where(created_at: 1.day.ago..Time.current).count
Правильнее наверно так всё же:
size = Order.count
Order.order(:created_at).each do |order|
 size -=1 if order.created_at < 1.day.ago || if order.created_at > Time.current
end
size
источник

АШ

Алексей Шеин... in Saint P Ruby Community
Vsevolod Avramov
Правильнее наверно так всё же:
size = Order.count
Order.order(:created_at).each do |order|
 size -=1 if order.created_at < 1.day.ago || if order.created_at > Time.current
end
size
это что троллинг такой, да? =))
источник

АШ

Алексей Шеин... in Saint P Ruby Community
вы уж извините, но если бы мне такое человек на интервью написал, я бы его не взял себе в команду
источник

VA

Vsevolod Avramov in Saint P Ruby Community
Алексей Шеин
это что троллинг такой, да? =))
Можно ежедневную таску написать, которая в 23:59 выполняется
namespace :daily do
 task :refresh_count do
   previous_day = Date.today
   Order.all.each do |order|
     if order.created_at.to_date == previous_day
       order.update(tomorrow: true)
     else
       order.update(tomorrow: false)
     end
   end
 end
end

И тогда просто выбирать:
Order.where(tomorrow: true).count
источник

AG

Alexander G in Saint P Ruby Community
Голосую за последний вариант. Только надо всё же не previous day, а yesterday = Date.today
источник

ME

Makar Ermokhin in Saint P Ruby Community
Тогда уж yesterday хотя б ☝🏻
источник

AG

Alexander G in Saint P Ruby Community
Лол)
источник

ME

Makar Ermokhin in Saint P Ruby Community
Alexander G
Голосую за последний вариант. Только надо всё же не previous day, а yesterday = Date.today
Вас посетила полиция времени, вы почто такие присваивания употребляете?
источник

ME

Makar Ermokhin in Saint P Ruby Community
Вы небось и true = false балуетесь?
источник

AG

Alexander G in Saint P Ruby Community
Хотел предложить убрать лишнюю переменную

order.update(tomorrow: order.created_at.today?)

Но кажется их тут наоборот не хватает
источник

ME

Makar Ermokhin in Saint P Ruby Community
Где то был твит про even? на JS, там красивые варианты были
источник

AG

Alexander G in Saint P Ruby Community
Думаю, неплохо было бы на микро сервисы разбить. Плюс чтение/изменение тоже разнести
источник

ME

Makar Ermokhin in Saint P Ruby Community
Alexander G
Думаю, неплохо было бы на микро сервисы разбить. Плюс чтение/изменение тоже разнести
Точно. Пару архитекторов туда ещё на эту задачу выделить
источник

VA

Vsevolod Avramov in Saint P Ruby Community
Ну всё-таки с id лучший вариант только надо его дописать - учитывать те, которые были удалены по какой-то причине:
last_id = Order.yesterday.last.id
first_id = Order.yesterday.first.id

count = 0
(first_id..last_id).each do |id|
 count = count + (Order.where(id: id)[0].nil? ? 0 : 1)
end
count
источник

AG

Alexander G in Saint P Ruby Community
scope yesterday тут все портит) слишком красиво
источник

VA

Vsevolod Avramov in Saint P Ruby Community
Alexander G
scope yesterday тут все портит) слишком красиво
сек
источник