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