Использование консоли Rails для запроса нескольких моделей с условием - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь использовать консоль rails для кодирования моего утверждения, и ниже приведены отношения моей модели:

class Lead < ApplicationRecord
    belongs_to :user
end

class User < ApplicationRecord
    has_many :leads
    belongs_to :stores
end

class Store < ApplicationRecord
    has_many :users
end

С этим я полагаю, чтобы найти лидерство в каждом магазине за последние 7 дней. Пока что я могу найти ВСЕх потенциальных клиентов в каждом магазине, используя:

s1 = Store.find 1
s1.users.map(&:leads).flatten.count

Выше можно было указать все потенциальные клиенты из идентификатора магазина 1. Я также выяснил, как получить ВСЕ потенциальные клиенты ВСЕХ магазинов за последние 7 дней:

Lead.where(created_at: 7.days.ago..Time.zone.now.end_of_day).count

Я хотел бы знать, как я могу объединить эти два и получить результат, отображающий только лиды (или количество лидов) за последние 7 дней каждого магазина. Спасибо

1 Ответ

1 голос
/ 03 апреля 2019

Чтобы упростить процесс, свяжите лиды с магазинами, используя has_many :through.

class Store < ApplicationRecord
    has_many :users
    has_many :leads, through: :users
end

Тогда вы сможете запрашивать лиды напрямую в магазинах:

s1 = Store.find(1)
s1.leads.where(created_at: 7.days.ago..Time.zone.now.end_of_day).count
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...