После сохранения перезвонить не обновлять - PullRequest
1 голос
/ 24 апреля 2019

Я пытаюсь установить обратный вызов для моей модели продукта, но discounted_price атрибут product не изменяется ...

Я не могу позвонить self.save itподнимает stack level too deep

Что я делаю не так?

product.rb

after_save :set_discount

def set_discount
  self.discounted_price = self.price - (self.price * self.discount_percentage / 100)
end

Ответы [ 2 ]

2 голосов
/ 24 апреля 2019

Возможно, вам нужен обратный вызов before_save, потому что after_save происходит - как следует из названия, после сохранения

1 голос
/ 24 апреля 2019

Вам необходимо изменить значение перед сохранением в BD!

before_save :set_discount

def set_discount
  self.discounted_price = price - (price * discount_percentage / 100)
end

Кроме того, самостоятельное использование не обязательно после =

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...