Rails 3.1: no se puede escribir en la columna en la misma migración que lo agrega
Tuve una migración add_column que funcionaría bien. Sin embargo, después de ejecutarlo y encender una consola, las columnas first_name y last_name están completamente vacías. Intenté usarsave!
en su lugar y tuvo el mismo efecto: no se informaron errores. Aquí está el original:
class UserAddFirstNameAndLastName < ActiveRecord::Migration
def change
# add column first name, last name string
add_column :users, :first_name, :string
add_column :users, :last_name, :string
User.all.each do |u|
u.first_name = 'first name'
u.last_name = 'last name'
u.save
end
end
end
También pensé que esto podría ser un problema de carga de clase, así que inserté la líneaUser
para forzar a la clase de usuario a recargar antes del ciclo. No dados
Cuando dividí esto en dos migraciones, se logró el efecto deseado. ¿Alguien tiene una explicación para esto? Juro que incluso hice esto en el mismo proyecto con migraciones pasadas.
Otras notas: Diseñe para el motor de usuario, agregue las nuevas columnas aattr_accessible
en la clase de usuario antes de ejecutar la migración.