Как запустить "rails generate scaffold", когда модель уже существует?
Я новичок в Rails, поэтому мой текущий проект находится в странном состоянии.
одной из первых вещей, которые я создал, была модель "кино". Затем я начал определять его более подробно, добавил несколько методов и т. д.
теперь я понимаю, что я должен был создать его с rails generate scaffold подключить такие вещи, как маршрутизация, вид, контроллер и т. д.
Я попытался создать леса, но я получил сообщение об ошибке, сказав файл миграции с тем же именем уже существует.
каков лучший способ для меня создать леса для моего "фильма" сейчас? (через рельсы 3)
6 ответов:
TL; DR:
rails g scaffold_controller <name>даже если у вас уже есть модель, вы все равно можете создать необходимые файлы контроллера и миграции с помощью . Если вы запустите
rails generate -hвы можете увидеть все доступные вам варианты.Rails: controller generator helper integration_test mailer migration model observer performance_test plugin resource scaffold scaffold_controller session_migration stylesheetsесли вы хотите создать каркас контроллера для своей модели, см.
scaffold_controller. Просто для ясности, вот описание этого:заглушки из лесов контроллер и его просмотр. Передать название модели , либо формате или under_scored, и список представлений в качестве аргументов. Имя контроллера извлекается как множественная версия модели имя.
чтобы создать контроллер в модуле, Укажите имя модели как a путь типа 'parent_module / controller_name'.
это создает класс контроллера в app / controllers и вызывает helper, механизм шаблонов и структура тестирования генераторы.
чтобы создать свой ресурс, нужно использовать
resourceгенератор, и для создания миграции, вы также можете увидетьmigrationгенератор (смотрите, есть закономерность во всем этом безумии). Они предоставляют параметры для создания отсутствующих файлов для создания ресурса. В качестве альтернативы вы можете просто запуститьrails generate scaffoldС--skipвозможность пропустить любые файлы, которые существуют :)я рекомендую потратить некоторое время, глядя на варианты внутри генераторов. Они что-то, что я не чувствую, очень хорошо документировано в книгах и т. д., но они очень удобны.
отличный ответ от
Lee Jarvis, это просто команда, например; у нас уже есть существующая модель под названием User:rails g scaffold_controller User
для тех, кто запускает приложение rails с существующей базой данных, есть классный камень под названием
schema_to_scaffoldдля создания сценария scaffold. он выводит:
rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:stringиз своего
schema.rbнаш переименованныйschema.rb.проверить
вы можете использовать
scaffold_controllerи не забудьте передатьattributesмодели, или каркас будет создан без атрибутов.rails g scaffold_controller User name email # or rails g scaffold_controller User name:string email:stringэта команда создаст следующие файлы:
create app/controllers/users_controller.rb invoke haml create app/views/users create app/views/users/index.html.haml create app/views/users/edit.html.haml create app/views/users/show.html.haml create app/views/users/new.html.haml create app/views/users/_form.html.haml invoke test_unit create test/controllers/users_controller_test.rb invoke helper create app/helpers/users_helper.rb invoke test_unit invoke jbuilder create app/views/users/index.json.jbuilder create app/views/users/show.json.jbuilder
на рельсы 5, вы все еще можете запустить
$rails generate scaffold movie --skipдля создания всех отсутствующих файлов scaffold или
rails generate scaffold_controller Movieдля создания контроллера и просмотра только.
для лучшего объяснения проверить эшафот рельсы
Comments