0
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 メソッドを書きます。機能を削除すると、ユーザーは何度でも評価できますが、この機能を追加すると、ユーザーは評価できなくなります。ここで何が問題なのか知っている人はいますか?ありがとう

4

1 に答える 1