2013-04-04 1 views
0

Я новичок в Rails - я начал новые рельсы приложения rails new test, затем rails generate scaffold Name column1:datatype column2:datatypeСтроительных леса - рельсы генерации - данные мигрируют Защиту в классе

В учебнике раз я открываю 12345678timestamp_create_names.rb файл у меня есть def change, но учебник имеет как def self.up, так и def self.down

Почему это? И в чем разница? И теперь я должен изменить свое приложение? И в будущем?

ответ

2

миграции изменилось с rails2 до rails3, теперь rails3 достаточно умен, чтобы понять, как это следует ответ с командой

Итак, рассмотрим change как сочетание up и down

если вы говорите

rake db:migrate он будет рассматривать это как up

rake db:rollback он будет рассматривать его как down

read more here

1

Рельсы 3.1 ввел новый метод изменения к миграции.

See Rails guides

Rails 3.1 делает миграцию умнее, обеспечивая новый метод изменения. Этот метод является предпочтительным для написания конструктивных перемещений (добавление столбцов или таблиц). Миграция знает, как перенести вашу базу данных и отменить ее, когда миграция отменяется без необходимости написать отдельный метод вниз.

Таким образом, ваш учебник, вероятно, охватывает Rails 3.0, но не Rails 2, потому что вы уже использовали команду Rails 3 для создания нового приложения.