Я хочу добавить STI в существующую таблицу, используя столбец пользовательского типа. Давайте назовем этот вкус_ типом, чья соответствующая модель - Фрукт.
В модели Fruit у меня есть:
set_inheritance_column :taste_type
В моей миграции для добавления STI у меня есть:
class AddSTI < ActiveRecord::Migration
def self.up
add_column :fruits, :taste_type, :string, :limit => 100, :null => false
Fruit.reset_column_information
Fruit.find_by_id(1).update_attributes({:taste_type => 'Sour'})
end
def self.down
remove_column :fruits, :taste_type
end
end
Когда я запускаю миграцию, я получаю следующую ошибку:
Mysql::Error: Column 'taste_type' cannot be null: ...
Есть идеи, что происходит? Я могу запустить миграцию, если я прокомментирую set_inheritance_column в модели Fruit, а затем раскомментирую ее после запуска миграции. Однако я не хочу этого делать.