Rails - 每个字段每天1个条目

时间:2010-03-20 12:39:25

标签: ruby-on-rails

假设我有食物模型

在模型中,人们每天都会输入他们吃多少磅披萨/蔬菜/水果。

每种食物都是自己的专栏

我的问题是,我喜欢它,所以他们每24小时只能输入一次(针对那种食物类型)(基于created_at)。

这可能吗?

2 个答案:

答案 0 :(得分:0)

我认为不可能使用标准的rails验证,但是建立自己的验证应该很容易。

我首先要建立一个在给定日期找到条目的命名范围。

然后,在你的验证中你可以使用exists吗?查找是否存在任何已经存在的冲突记录的方法。请记住,存在?默认情况下,方法会检测当前记录,因此您必须考虑到这一点。

答案 1 :(得分:0)

我可以通过两种方式来完成这项工作:

  1. 每个字段都有自己的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
    
  2. 将每种食物类型存储在一个名为FoodItem的单独模型中,该模型将包含食物类型,日期等的列。这样,您的系统中可以有多种类型的食物,而不是处理拥有大量x_updated_at字段的大部分内容。