У меня была миграция 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
в классе User перед запуском миграции.