私は、評価に基づいて、特定のことが起こる必要がある調査アプリを構築しています。基本的に、合計評価が15未満の調査を提出する場合は、監督者に通知する必要があります。メーラーを使えば簡単ですが、after_createメソッドで評価データにアクセスできないようです。
私のモデルには、整数であるA、B、C、D、およびEという名前の5つのフィールドがあり、それらは形式で評価データを保持します。
:notationを試しました。self.notationを試しました。after_create(service)service.notationを試しましたが、何も機能しません。評価が15未満であることが認識されないため、メールは送信されません。
同様の問題があるチェックボックスもあります。データベースでは「true」と表示されますが、保存される前は通常1と表示されるため、正しい値をテストするのは難しいです。以下のコードと同様に、私もその値にアクセスできません。私が試したさまざまな方法をすべてリストアップしましたが、成功しませんでした。
明らかに、これらはすべて同時にモデルに存在するわけではありません。私が試みた例として、以下にリストされています。
after_create呼び出しでこれらのデータ値にアクセスするにはどうすればよいですか?!
class Service < ActiveRecord::Base
after_create :lowScore
def lowScore
if(A+B+C+D+E) < 15 #does not work
ServiceMailer.toSupervisor(self).deliver
end
end
def lowScore
if(self.A+self.B+self.C+self.D+self.E) < 15 #does not work either
ServiceMailer.toSupervisor(self).deliver
end
end
#this does not work either!
def after_create(service)
if service.contactMe == :true || service.contactMe == 1
ServiceMailer.contactAlert(service).deliver
end
if (service.A + service.B + service.C + service.D + service.E) < 15
ServiceMailer.toSupervisor(service).deliver
ServiceMailer.adminAlert(service).deliver
end
end