Rails 3.1: невозможно записать в столбец в той же миграции, которая его добавляет
У меня была миграция 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
заставить пользовательский класс перезагрузиться перед циклом. Нет кости.
Когда я разделил это на две миграции, желаемый эффект был достигнут. У кого-нибудь есть объяснение этому? Клянусь, я даже делал это в том же проекте с прошлыми миграциями.
Другие примечания: Разработка пользовательского движка, добавлены новые столбцы вattr_accessible
в классе пользователя перед запуском миграции.