У меня была миграция add_column, которая прошла нормально. Однако после его запуска и запуска консоли я обнаружил, что столбцы first_name и last_name полностью пусты. Я пробовал использовать save!
, и это имело тот же эффект - ошибок не сообщалось. Вот оригинал:
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
Я также подумал, что это может быть проблема с загрузкой класса, поэтому я вставил строку User
, чтобы заставить пользовательский класс перезагрузиться перед циклом. Никаких кубиков.
Когда я разделил это на две миграции, желаемый эффект был достигнут. У кого-нибудь есть объяснение этому? Клянусь, я даже делал это в одном проекте с прошлыми миграциями.
Другие примечания: Devise для пользовательского механизма, перед запуском миграции добавлены новые столбцы в attr_accessible
в классе User.