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.