Fix regression with custom init

under some conditions eg: https://github.com/parndt/rails-pull-12188 models are being initialized without init or init_with being called (triggered from create!) 

this change ensures we fall back to the models schema if we don't have a cached ref

it uses columns_hash as it is guaranteed to be a hash (column_types can be nil in some conditions)