0

我設立一個表一類的調度應用程序。該班每個月只有8個座位。ActiveRecord的表定義類型用於重複計數

在我的表,我需要用的ActiveRecord類型的幫助,我應該選擇將AUTO_INCREMENT多達8個,然後停止對於任何給定月份

我還需要ActiveRecord的類型,我應該爲每月選擇幫助。我應該聘請爲頭等艙座位一樣的想法,並有12(十二月)這個數字停止和刷新回1(假設我當然包括一年的屬性在我的表)

感謝, MO12

回答

0

我會把8個座位的最大邏輯放到你的應用程序中,而不是你的數據庫。

你可能需要兩個表:classesseats。由於class是保留字,你應該使用類似SchoolClass:

class SchoolClass < ActiveRecord::Base 
    has_many :seats, :dependent => :destroy 
end 

class Seat < ActiveRecord::Base 
    belongs_to :school_class 
end 

要驗證的最多席位數量已經達到,過濾器和一個實例方法之前使用的組合。類似這樣的:

class SchoolClass 
    MAXIMUM_SEATS = 8 

    before_create :validate_limit 

    def limit_reached? 
    seats.count >= MAXIMUM_SEATS 
    end 

    private 
    def validate_limit 
    errors.add :base, "The maximum of this class has been reached" if limit_reached? 
    end 
end 

最後在年份和月份使用兩個整數列是一個好主意。你可能想在這些列添加一個索引爲好。

相關問題