如何向具有相同兴趣的用户(Insterts_Users)发送电子邮件作为类别的治疗?

时间:2015-12-15 15:51:02

标签: ruby-on-rails ruby sqlite actionmailer

我希望每次添加他们感兴趣的类别下的新治疗时都会向用户发送电子邮件。

我有一个联接表interests_users,其中包含user_idinterest_id。当用户注册时,他/她会检查他们感兴趣的方框,即面部,身体等。治疗以相同的标题提交,以便将它们与兴趣进行比较。

我需要写什么样的查询才能保存新的治疗方法,与治疗类别类型有共同兴趣的用户会收到电子邮件?

1 个答案:

答案 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