Когда Rails сериализует хеш для сохранения в БД, все, что он делает, это конвертирует его в YAML, чтобы он мог быть сохранен в виде строки.Чтобы это работало в процессе миграции, все, что вам нужно сделать, это преобразовать хеш в yaml ...
t.string :dimensions_in, :default => {:width => 0, :height => 0, :depth => 0}.to_yaml
Или, наоборот, установить его в модели после инициализации ...
class ShippingProfile < ActiveRecord::Base
after_initialize :set_default_dimensions
private
def set_default_dimensions
self.dimensions_in ||= {:width => 0, :height => 0, :depth => 0}
end
end