validates:only_three,on: :createdefonly_threeifclass.where(["created_at > ?",Time.now.beginning_of_day]).count>=3errors.add(:id,"you can create only 3 items per day.")endend
没有测试,但是这样写的思路应该是可以达到目的的.
其实这样的用户体验不好。你应该在new时就访问数据库检查是不是已经有 3 条记录了。如果有,就直接提示不能再创建了,而不是输入完数据提交时再检查。也就是client side validation的概念。