Я создаю приложение для опроса, где, основываясь на рейтингах, мне нужно, чтобы некоторые вещи случались. В принципе, если опрос представлен с общим рейтингом менее 15, нам необходимо уведомить диспетчера. Это достаточно легко для почтовых программ, но я не могу получить доступ к данным рейтинга в методе after_create.рельсы: доступ к переменным-членам в after_create
Моя модель имеет 5 полей с именами A, B, C, D и E, которые являются целыми числами, и они содержат данные рейтинга в форме.
Я пробовал: нотация Я пробовал самостоятельно. Я пробовал after_create (service) service.notation и ничего не работает - письмо никогда не отправляется, потому что оно не понимает, что рейтинг ниже 15.
У меня также есть флажок с аналогичными проблемами. В базе данных она выглядит как «истина», но до ее сохранения она обычно отображается как 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
Когда вы говорите, что не работает, что происходит? если вы придерживаетесь точки останова в методе lowScore, каковы атрибуты вашего объекта? –
Я понял это, и я чувствую себя идиотом. Я отправлю свое решение. – Oranges13