Setting default values in a new AR model?

Currently, to set some default values, but also keep any values that the user specifies to new, i'm doing this:

def initialize(*params)     defaults = {:resources => true,                 :lessons => true,                 :courses => true,                 :sort_by => "name",                 :term => "",                 :kinds => ["0"],                 :fields => ["0"],                 :subject_families => ["0"],                 :subject_family_members => ["0"]                 }     params[0] = defaults.merge(params[0] || {})     super(*params)

  end

It works but seems a bit dirty. Is there a nicer way? I know that the after_intialize callback is called after a record is retrieved from the db as well (i never understood the logic behind this) so i avoided using that.