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 方法来验证它。如果我删除该功能,用户可以多次评价,如果我添加该功能,用户不能评价它。有人知道这里有什么问题吗?谢谢