假设我有食物模型
在模型中,人们每天都会输入他们吃多少磅披萨/蔬菜/水果。每种食物都是自己的专栏
我的问题是,我喜欢它,所以他们每24小时只能输入一次(针对那种食物类型)(基于created_at)。
这可能吗?
答案 0 :(得分:0)
我认为不可能使用标准的rails验证,但是建立自己的验证应该很容易。
我首先要建立一个在给定日期找到条目的命名范围。
然后,在你的验证中你可以使用exists吗?查找是否存在任何已经存在的冲突记录的方法。请记住,存在?默认情况下,方法会检测当前记录,因此您必须考虑到这一点。
答案 1 :(得分:0)
我可以通过两种方式来完成这项工作:
每个字段都有自己的updated_at
字段 - 后者在更改其同名时会更新,您可以进行简单的验证,检查如下:
before_save :check_periodicity
def check_periodicity
if self.pizza_updated_at > Date.today - 1.day
errors.add(:pizza, "You cannot update your pizza values more often than once a day".)
end
... similarly for any other fields (you could also find a way to loop this)
end
将每种食物类型存储在一个名为FoodItem
的单独模型中,该模型将包含食物类型,日期等的列。这样,您的系统中可以有多种类型的食物,而不是处理拥有大量x_updated_at
字段的大部分内容。