我的模特:
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)
对于使用lambda的第二个条件it was suggested,但我不太明白 - 我是新手......
我正在使用 cron.rake 文件中的范围向订阅者发送电子邮件通知:
Subscriber.notify_today.each {|subsc| UserMailer.delay.new_positions_mail(subsc)}
答案 0 :(得分:1)
scope :notify_today, lambda {
joins(:skills => :positions).
where('positions.created_at > subscribers.created_at').
where('positions.created_at > ?', 1.day.ago)
}
请注意,joins
用于搜索关联记录,而includes
用于搜索关联记录。