Я ищу метод, который быстрее и использует меньше серверной обработки. В моем приложении я могу использовать как .where
, так и .detect
:
Где:
User.where(id: 1)
# User Load (0.5ms)
Обнаружение:
User.all.detect{ |u| u.id == 1 }
# User Load (0.7ms). Sometimes increases more than .where
Я понимаю, что .detect
возвращает первый элемент в списке, для которого блок возвращает TRUE, но как это сравнивается с .where
, если у меня тысячи пользователей?
Отредактировано для ясности.
.where
используется в этом примере, потому что я не могу запрашивать только id
. Что делать, если у меня есть столбец таблицы с именем «имя»?