Я пытаюсь дать администраторам моего веб-приложения возможность добавлять некоторые новые поля в модель. Модель называется Artwork, и я хотел бы добавить, например, столбец test_column во время выполнения. Я просто проверяю, поэтому я добавил для этого простую ссылку, она будет, конечно, параметрической.
Мне удалось сделать это путем миграции:
def test_migration_create
Artwork.add_column :test_column, :integer
flash[:notice] = "Added Column test_column to artworks"
redirect_to :action => 'index'
end
def test_migration_delete
Artwork.remove_column :test_column
flash[:notice] = "Removed column test_column from artworks"
redirect_to :action => 'index'
end
Работает, столбец добавляется / удаляется в / из базы данных без проблем. Сейчас я использую active_scaffold, поэтому я получаю поле test_column в форме, ничего не добавляя. Однако, когда я отправляю создание или обновление, test_column не обновляется и остается пустым. Проверяя параметры, я вижу:
Parameters: {"commit"=>"Update", "authenticity_token"=>"37Bo5pT2jeoXtyY1HgkEdIhglhz8iQL0i3XAx7vu9H4=", "id"=>"62", "record"=>{"number"=>"test_artwork", "author"=>"", "title"=>"Opera di Test", "test_column"=>"TEEST", "year"=>"", "description"=>""}}
параметр test_column передан правильно. Так почему активная запись продолжает игнорировать это? Я попытался перезапустить сервер тоже безуспешно.
Я использую ruby 1.8.7, rails 2.3.5 и mongrel с базой данных sqlite3.
Спасибо