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] || {})


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.