Rails before_save不起作用

时间:2014-02-09 19:54:16

标签: ruby-on-rails ruby-on-rails-4 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

但是当我向DB添加一些随机种子时,所有这些种子的评级属性都是零。 难道我做错了什么?提前谢谢!

1 个答案:

答案 0 :(得分:2)

before_save回调是Rails中ActiveRecord模块(用于模型)的一部分。 ActiveRecord::Callbacks

因此,您的before_save指令和方法将进入Sms模型而不是SmsController