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
私は 1 つの評価モデルを持っており、ユーザーが 1 日に 1 回だけ評価できるようにしたいと考えています。それを検証するために user_can_rate_after_one_day メソッドを書きます。機能を削除すると、ユーザーは何度でも評価できますが、この機能を追加すると、ユーザーは評価できなくなります。ここで何が問題なのか知っている人はいますか?ありがとう