Let me propose an alternative: set the default in the ActiveRecord code. There are a variety of approaches discussed here.
Check it out.
So, we should consider something like:
class RecordedInfraction < ActiveRecord::Base after_initialize :default_values private def default_values self.infraction_id ||= Infraction.find_by_name("FYI").id end end
That way we can reduce the WTFs when reading our code.