前提・実現したいこと
Ruby on Railsで購買が生じるサイトを作っており,「買い手の商品発送先の情報(住所)が更新されたら売り手にその旨を通知する」といったメール通知機能を作っています.
住所が変更されたら,住所のカラムを持つモデルの中でコールバックしてメールの通知を行います.
after_update do if saved_changes? user.unique_list.each do |artist| FooMailer.notificate_address_change(self,fin).deliver end end end
その中で,Amazonのように「買い手が発送先を一箇所ではなく,複数設定できる」という仕様の変更が将来想定しうります.(現在は未実装)
仮に,ある買い手が売り手Aに登録している発送先を変更した場合,Aだけに通知が届くべきなのに別の発送先に登録している売り手Bにも通知メールが届いてしまうということになります.
なのでsaved_changes?
で,変更できるカラムを制限したいと考えていますが,ドキュメントを見る限りだとsaved_changes?
メソッドは引数を持つことができない?のでしょうか.
参考ドキュメント:AttributeMethodのchanged関連
試したこと
住所が変更されたら住所のカラムを持つモデルの中でコールバックしてメールの通知を行います.saved_change_to_attribute
メソッドなども試してみました
ruby
1after_update do 2 if saved_change_to_attribute?(:hoge, :foo, :huga) 3 user.unique_list.each do |artist| 4 FooMailer.notificate_address_change(self, fin).deliver 5 end 6 end 7 end
参考資料
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。