Моя модель:
Subscriber
has_and_belongs_to_many :skills
Skill
has_many :positions
Position
belongs_to :skill
Я хочу найти всех подписчиков, у которых есть позиции, которые ...
1. созданы в течение последнего дня
2. созданы после создания подписчика
Первое условие легко ( subscriber.rb ):
scope :notify_today,
includes(:skills => :positions).where('positions.created_at > ?', 1.day.ago)
Для второго условия было предложено использовать лямбду, но яне совсем понял - я новичок ...
Я использую область в файле cron.rake для отправки уведомлений по электронной почте подписчикам:
Subscriber.notify_today.each {|subsc| UserMailer.delay.new_positions_mail(subsc)}