El caso es el siguiente, yo ya tengo mi tabla creada, una tabla muy
tonta que se llama personas y que solo tiene los campos “nombre y edad”.
Resulta que ahora quiero insertar una nueva columna tal y como sigue en
uno de los capitulos, hago lo siguiente:
en consola:
ruby script/generate migration nomina. #me crea la migracion 002_nomina.rb
en dicho fichero 002_nomina.rb tengo lo siguiente:
class Nomina < ActiveRecord::Migration
def self.up
add_column :personas, :nomina, :decimal
end
def self.down
remove_column :personas, :nomina
end
end
Y a continuación en la consola hago lo siguiente:
rake db:migrate
Y me sale lo siguiente:
(in D:/InstantRails/rails/comics_catalog)
== Nomina: migrating
– add_column(:personas, :nomina, :decimal)
rake aborted!
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.[]
De hecho las columnas :decimal con escala son usadas a traves de la
clase BigDecimal, la cual no tienen los problemas de redondeo de los
floats y es una buena decision pasar a su uso lo antes posible si se
utilizan estos tipos de datos.