Rails before_save не работает
Я хочу рассчитать @rating каждого элемента перед созданием / обновлением. вот моя модель:
class SmsController < ApplicationController
before_save :calculate_rating
def new
end
def create
end
def show
end
def destroy
end
private
def calculate_rating
self.rating=self.happy-self.sad+(3*self.report)
end
end
но когда я добавляю в базу данных случайные начальные числа, атрибут рейтинга для всех них равен нулю. Я делаю что-то неправильно? Заранее спасибо!
1 ответ
Решение
Обратный вызов before_save является частью модуля ActiveRecord (для моделей) в Rails. ActiveRecord:: Callbacks
Таким образом, ваша директива и метод before_save будут соответствовать модели Sms по сравнению с SmsController.