Как запустить "rails generate scaffold", когда модель уже существует?



Я новичок в Rails, поэтому мой текущий проект находится в странном состоянии.



одной из первых вещей, которые я создал, была модель "кино". Затем я начал определять его более подробно, добавил несколько методов и т. д.



теперь я понимаю, что я должен был создать его с rails generate scaffold подключить такие вещи, как маршрутизация, вид, контроллер и т. д.



Я попытался создать леса, но я получил сообщение об ошибке, сказав файл миграции с тем же именем уже существует.



каков лучший способ для меня создать леса для моего "фильма" сейчас? (через рельсы 3)

583   6  

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.проверить

эта команда должна сделать трюк:

$ rails g scaffold movie --skip

вы можете использовать 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

    Ничего не найдено.