Вопрос по миграции рельсов и синхронизации просмотров - PullRequest
2 голосов
/ 14 ноября 2009

Я новичок в Rails и пытаюсь понять, как работает миграция rails. Я создал эшафот, как:

script/generate scaffold Item col1:string col2:text
rake db:migrate

Я хотел бы добавить еще один col4, используя миграцию:

Я создал миграцию следующим образом:

class AddCol4 < ActiveRecord::Migration
  def self.up
        add_column      :items, :col4, :numeric
        Item.reset_column_information
  end

  def self.down
        remove_column   :items, :col4
  end
end

Когда я запускаю rake db: migrate, добавляется новый столбец. Однако представление не синхронизировано. Я должен вручную добавить новый столбец в представление? Есть ли способ автоматически восстановить модель / представление, используя новые столбцы таблицы?

Извините, это основной вопрос, но из моего опыта работы с другими фреймворками он должен был быть автоматическим. Руководство rails по миграции не дает понять, как должна работать синхронизация после выполнения миграции.

1 Ответ

2 голосов
/ 14 ноября 2009

К сожалению, вам нужно будет изменить вид вручную. Представление создается с помощью команды script/generate scaffold. Миграции только меняют базу данных. Технически, вы можете повторно запустить команду скаффолда и заставить ее восстановить вид. Он спросит вас, хотите ли вы перезаписать предыдущий файл, однако, если вы пойдете по этому пути, вам все равно нужно будет указать ВСЕ столбцы, которые вы хотите. Вы не можете просто добавить некоторые здесь и там.

Если вы находитесь на ранней стадии разработки, вы можете пойти по этому пути. Просто запустите

script/destroy scaffold Item

, а затем снова запустите

script generate scaffold Item col1:string col2 string col3:numeric

Существуют некоторые динамические расширения для скаффолдинга, такие как ActiveScaffold , если вы создаете что-то, что увидят только несколько пользователей, но я бы порекомендовал сделать HTML самостоятельно, поскольку он всегда будет таким, каким вы хотите .

Я не могу найти другие динамические плагины для строительных лесов. Раньше их было немало ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...