所以我有我的視頻模型中的這兩種方法。第一個參數store
並做一些時髦的數學來返回rounded_num
。第二種方法應通過將vote_sum
的值傳遞給rank_sum
方法,將數據庫中的rank_sum
設置爲值rounded_num
。以下是方法:爲什麼我的rank_sum數據庫列仍然爲零?
def rank_sum(score)
order = Math.log10(([score.abs,1].max))
if score > 0
sign = 1
elsif score < 0
sign = -1
else
sign = 0
end
seconds = self.created_at - DateTime.new(1970,1,1)
long_num = order + sign * seconds/45000
return rounded_num = (long_num * 10**7).round.to_f/(10**7)
end
def update_rank_sum
new_rank = rank_sum(self.vote_sum)
video.update_attributes!(:rank_sum => new_rank)
end
但是,rank_sum
沒有被設置。每個視頻的rank_sum的值仍然爲零。我該如何解決?
如何調用'update_rank_sum'? – 2011-03-19 23:10:44
我不認爲這是。我認爲它可能已被自動調用,但我猜這個假設是錯誤的。我應該怎麼稱呼它?回調? – 2011-03-19 23:16:25
這就是我需要知道的:)見下面的答案。 – 2011-03-19 23:18:15