#ruby-on-rails #activerecord #where
#ruby-on-rails #activerecord #where-предложение
Вопрос:
Я пытаюсь получить доступ к количеству записей «customer», которые были созданы сегодня. Что-то вроде:
@customersToday = User.where("created_at >= ?", Date.today, user_type: 'Customer').count
Как я могу сделать это в одном запросе (который работает)?
Комментарии:
1. Как это еще не один запрос?
2. Это один запрос. Возможно, перефразируйте свой вопрос?
3. Запрос в моем вопросе не работает
Ответ №1:
@customersToday = User.where("created_at >= ? and user_type = ?", Date.today, 'Customer').count
Ответ №2:
Ваш запрос должен выполняться одним запросом, но вы можете упростить его, создав пару областей
class User < ActiveRecord::Base
scope :today, -> { where ["created_at >= ?", Date.today] }
scope :customers, -> { where user_type: 'Customer' }
end
Теперь вы можете запустить
User.customers.today.count
Комментарии:
1. Это выдало мне ошибку no method. Пробовал как User.customer.today.count, так и User.customers.today.count