Я пытаюсь собрать запрос ActiveRecord, который будет возвращать любой идентификатор пользователя, где связанные записи модели были обновлены в определенном диапазоне.Как получить user_id, где любая ассоциация updated_at находится в пределах диапазона?
Так, например, User has_many :searches
и has_many :lists
. Я хочу сделать что-то вроде этого:
user_ids = [1,2,3,4]
search_users = Search.where(user_id: user_ids).where("updated_at > ?", 7.days.ago).pluck(:user_id)
list_users = List.where(user_id: user_ids).where("updated_at > ?", 7.days.ago).pluck(:user_id)
ids_i_care_about = (list_users + search_users).uniq
Так через несколько моделей, мне нужно, чтобы получить user_ids, которые updated_at в моем диапазоне для любой из моделей. (Временной интервал должен удовлетворять хотя бы 1 обновленной версии модели). Я делаю это примерно для примерно 12 моделей, каждый из которых имеет user_id.
Каков наилучший способ сделать это в ActiveRecord?