Как запустить «rails генерировать леса», когда модель уже существует?

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

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

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

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

Каков наилучший способ создания лесов для моего «Кино» сейчас? (с использованием рельсов 3)

TL; DR : rails g scaffold_controller

Несмотря на то, что у вас уже есть модель, вы все равно можете сгенерировать необходимые файлы controllerа и миграции с помощью опции rails generate . Если вы запустите 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 . Просто для ясности, вот описание этого:

Вытесняет controller леса и его виды. Передайте имя модели, либо CamelCased, либо under_scored, и список представлений в качестве аргументов. Имя controllerа извлекается как множественная версия имени модели.

Чтобы создать controller внутри модуля, укажите имя модели как путь, например ‘parent_module / имя_controllerа’.

Это создает class controllerа в приложении / controllerах и вызывает вспомогательные, генераторы шаблонов и генераторы тестовых фреймов.

Чтобы создать свой ресурс, вы должны использовать генератор resource и создать миграцию, вы также можете увидеть генератор migration (см. Рисунок для всего этого безумия). Они предоставляют опции для создания недостающих файлов для создания ресурса. В качестве альтернативы вы можете просто запускать rails generate scaffold с опцией --skip чтобы пропустить любые файлы, которые существуют 🙂

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

Отличный ответ Lee Jarvis , это просто команда, например; у нас уже есть существующая модель под названием User:

 rails g scaffold_controller User 

Для тех, кто schema_to_scaffold приложение rails с существующей базой данных, есть classный жемчуг, называемый 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 

В Rails 5 вы все равно можете запускать

 $rails generate scaffold movie --skip 

для создания всех отсутствующих файлов леса или

 rails generate scaffold_controller Movie 

для создания controllerа и просмотра только.

Для лучшего объяснения проверьте эстакады рельсов

  • Рельсы, расширяющие ActiveRecord :: Base
  • Rails .where vs .find
  • Предупреждение о устаревании при использовании has_many: через: uniq in Rails 4
  • Rails обнаруживает, что запрос был AJAX
  • Устаревшее предупреждение для Rails 4 has_many с заказом
  • rails - Разработка - Обработка - devise_error_messages
  • Как attr_accessible используется в Rails 4?
  • Добавить пользовательское поле / столбец для разработки с помощью Rails 4
  • Как выразить запрос NOT IN с помощью ActiveRecord / Rails?
  • Rails 3 Переадресация маршрутизации SSL с https на http
  • Разрешить что-либо через политику CORS
  • Interesting Posts

    Могут ли выражения расширения параметра $ {var} быть вложенными в bash?

    Как запустить команду «runas» без ввода пароля

    Как удалить все строки из всех таблиц в базе данных SQL Server?

    Форматирование Word – необходимо выравнивать слева направо, справа налево в одной строке

    Как работает Google Instant?

    Когда компьютер будет приостановлен, было бы безопасно перемещать его сейчас?

    Возможно ли иметь переменные среды на пути рабочего каталога: PS1?

    Как я могу выдать одну команду из командной строки через sql plus?

    Чтение UTF-8 – маркер спецификации

    Clone () vs Copy constructor – который рекомендуется в java

    Работа с метками времени в R

    Есть ли какой-либо способ определить, какой псевдоним электронной почты отправил мне отправитель, если он был указан как BCC (Outlook)?

    Есть ли способ заблокировать папку и все файлы внутри в течение определенного времени?

    Алгоритм обучения перцептрону не сходится к 0

    Блокировать все порты, кроме SSH / HTTP, в ipchains и iptables

    Давайте будем гением компьютера.