我解決它看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:我不需要星期天,所以它不在名單上;)