我正在为课程安排应用设置一个表格。该课程每个日历月只有8个席位。
在我的表格中,我需要有关ActiveRecord类型的帮助,我应该选择auto_increment最多为8,然后在任何给定月份停止
我还需要帮助我应该选择一个月的ActiveRecord类型。我是否应该对课堂座位使用相同的想法,并将此编号停在12(12月)并刷新回1(假设我当然在表格中包含年份属性)
感谢, MO12
答案 0 :(得分:0)
我会将8个座位的最大逻辑放入您的应用程序,而不是您的数据库。
您可能需要两个表:classes
和seats
。由于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
最后使用两个整数列来表示年份和月份是一个好主意。您可能还想在这些列中添加索引。