我有一个 Rails 模型,应该只允许每个用户每天保存/更新一次模型。我有一个回调来按用户和日期进行查找,然后添加到错误中,但这很丑陋并且感觉不像轨道。我有典型的 created_at / updated_at 列(时间部分很重要/我需要保留它)。
所以我想我可以:
1)创建另一个模型属性,它只是创建日期和范围(bleh)
2)使用 :scope 属性,但以某种方式只获取 created_at 的日期部分,例如 validates_uniqueness_of :user, :scope => :created_at.to_date (显然不起作用)
3) 验证除非 => Proc.new{ |o| 与我现有回调匹配的 Finder }(总)
http://ar.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M000086
这些不会太多,但我宁愿它是用 SQL 而不是 Ruby 完成的(出于明显的可伸缩性原因)。
有什么想法吗?有没有更好的办法?