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.

Другие вопросы по тегам