我希望每次添加他们感兴趣的类别下的新治疗时都会向用户发送电子邮件。
我有一个联接表interests_users
,其中包含user_id
和interest_id
。当用户注册时,他/她会检查他们感兴趣的方框,即面部,身体等。治疗以相同的标题提交,以便将它们与兴趣进行比较。
我需要写什么样的查询才能保存新的治疗方法,与治疗类别类型有共同兴趣的用户会收到电子邮件?
答案 0 :(得分:0)
在create
TreatmentsController
的{{1}}操作中,您可以使用find_by_sql和appropariate sql命令迭代用户,获取符合相关兴趣的所有记录。然后我们使用这里描述的Mailer方法...... http://guides.rubyonrails.org/action_mailer_basics.html
迭代可能看起来像......
if @treatment.save
interest = Interest.find_by(name: @treatment.category)
if interest
User.find_by_sql("SELECT * FROM users
INNER JOIN interests_users ON clients.id = interests_users.client_id
WHERE interests_users.interest_id = ?", interest.id).each do |user|
AppMailer.send_notification(user, @treatment).deliver
end
end
end