time_zone_select Doesn't Update in Save

I am using time_zone_select for the first time:

<%= form.time_zone_select('default_timezone') %>

I have an instance variable called user and that model has an attribute
called 'default_timezone'. This is all inside a nice form_form construct.

The list of time zones displays and when I submit the form, I see it sends
the data:

Parameters: {"user"=>{"auto_update_map"=>"1", "default_timezone"=>"London"},
"device"=>{"81"=>{"nickname"=>"BonzoHunter"}}, "Submit"=>"Save Changes",
"action"=>"update_prefs", "controller"=>"user"}

But, the UPDATE sets default_timezone to NULL:

UPDATE user_accounts SET "default_timezone" = NULL, "auto_update_map" = 1
WHERE id = 27

Huh? The other attribute I set, 'auto_update_map', works like a charm and I
can see that the parameter was sent.

Simple code:

@user.default_timezone = params[:user][:default_timezone]
@user.auto_update_map = params[:user][:auto_update_map]
@user.save!

So, what I am doing wrong here? The column in the database is a simple
varchar(255).

Thanks,
H