我解决它看before_save过滤器,
最后,我添加了一个整数day_order场的时间表表。和由它的存在强制性
validates :day_order, presence: true
然后我在模型中限制了可以被添加到该字段与
def day_order_enum
[1, 2, 3, 4, 5, 6]
end
和下一个步骤的数量做before_validation方法
before_validation :set_day_order
def set_day_order
if self.day_name == "monday"
self.day_order = 1
elsif self.day_name == "tuesday"
self.day_order = 2
elsif self.day_name == "wednesday"
self.day_order = 3
elsif self.day_name == "thursday"
self.day_order = 4
elsif self.day_name == "friday"
self.day_order = 5
elsif self.day_name == "saturday"
self.day_order = 6
end
end
最后,我做了一个范围由day_order场订购天
scope :day_asc_order, ->{ order('day_order ASC') }
而且我上市时使用的day_asc_order。
也许这是不是做的最好的方式,但它的工作原理。如果有人知道更好的方式来分享它,我会感谢他/她。 PS:我不需要星期天,所以它不在名单上;)