class Rate < ActiveRecord::Base
attr_accessible :image_id, :rate, :user_id
belongs_to :image
belongs_to :user
validate :user_can_rate_after_one_day
before_save :default_values
def default_values
self.rate ||=0
end
protected
def user_can_rate_after_one_day
r=Rate.where(:image_id =>image_id, :user_id=> user_id).order("created_at DESC").limit(1)
if( (Time.now - 1.day) < r[0].created_at)
self.errors.add(:rate,"you can only vote once per day")
else
return
end
end
end
我有一个评分模型,我希望用户每天只能评分一次。我编写了 user_can_rate_after_one_day 方法来验证它。如果我删除该功能,用户可以多次评价,如果我添加该功能,用户不能评价它。有人知道这里有什么问题吗?谢谢