2010-03-20 43 views
0

可以說我有一個食品模型導軌 - 1項,每場模型,每

模型

,每天都有人進入比薩/蔬菜/水果多磅怎麼吃。

每一種食物是自己的列

我的問題是,我想,這樣他們只能輸入一次(即食品類),每24小時(基於created_at)。

這可能嗎?

回答

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字段。

0

我不認爲使用標準導軌驗證是可能的,但它應該很容易建立自己的。

我會先建立一個指定的範圍來查找給定日期的條目。

然後,在你驗證你可以使用存在?方法來查找是否有任何已存在的衝突記錄。請記住存在?方法會默認檢測當前記錄,因此您必須對此進行說明。