Using Callbacks to Set Default Enum Values
While Rails allows setting a default value in the migration, you might want to dynamically assign an enum based on other conditions before saving a record.
Example: Setting a Default Status in before_save
class Order < ApplicationRecord
enum :status, { pending: 0, confirmed: 1, shipped: 2, delivered: 3 }
before_save :set_default_status
private
def set_default_status
self.status ||= :pending
end
end
Now, if no status is provided when creating an order, it will automatically be set to pending
before saving.