我想为我的费率操作创建一个after_save方法.它会将rating_score/ratings分开并更新列评级.
class KonkurrancersController < ApplicationController
def rate
@konkurrancer = Konkurrancer.find(params[:id])
@container = "Konkurrancer"+@konkurrancer.id.to_s
@konkurrancer.rating_score += params[:vind][:rating].to_i
@konkurrancer.ratings += 1
@konkurrancer.save
respond_to do |format|
format.js
end
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的模特:
class Konkurrancer < ActiveRecord::Base
after_save :do_foobar
private
def do_foobar
rating_score = self.rating_score
ratings = self.ratings
rating = (rating_score/ratings)
self.update_attributes(:rating => rating)
end
end
Run Code Online (Sandbox Code Playgroud)
我的rails日志:
Started POST "/konkurrancers/rate/46" for 127.0.0.1 at 2011-04-26 23:40:56 +0200
Processing by KonkurrancersController#rate as */*
Parameters: {"utf8"=>"Ô£ô", "authenticity_token"=>"MACFM37hX4S6XA9vryn7gtfl21P
vcaPBSiKDI8mfurg=", "vind"=>{"rating"=>"4"}, "id"=>"46"}
?[1m?[36mKonkurrancer Load (1.0ms)?[0m ?[1mSELECT `konkurrancers`.* FROM `kon
kurrancers`?[0m …
Run Code Online (Sandbox Code Playgroud)