Генерация контроллера со всеми функциями RESTful - PullRequest
80 голосов
/ 24 марта 2010

Я пытаюсь сгенерировать контроллер со всеми заглушенными действиями RESTful. Я прочитал на текст ссылки , что все, что мне нужно было сделать, это использовать вызов генератора с просто именем контроллера, которое я получу именно так. Итак, я запустил «Свойства скрипта / генератора rspec_controller» и получил пустой контроллер.

Любые другие предложения будут с благодарностью.

Ответы [ 10 ]

131 голосов
/ 24 марта 2010

Я не знаю об автоматизированном способе сделать это, но если вы делаете:

script/generate controller your_model_name_in_plural new create update edit destroy index show

Все они будут созданы для вас

Обновление для Rails 4

rails g scaffold_controller Property
97 голосов
/ 13 августа 2011

В Rails 3 также есть rails generate scaffold_controller .... Подробнее здесь .

37 голосов
/ 24 марта 2010

РЕДАКТИРОВАТЬ (из-за некоторых комментариев) : Оригинальный вопрос был в 2010 году - следовательно, ответ НЕ для RAILS 4, но для рельсов 2 !!

попробуйте использовать леса.

script/generate scaffold controller Properties

Раздел официальных документов по Ruby On Rails

Я уверен, что вы сможете найти больше информации, если сделаете поиск в Google на строительных лесах. Надеюсь, это поможет.

EDIT: Для рельсов 4

rails g scaffold_controller Property

12 голосов
/ 29 декабря 2016

В Rails 4/5 следующая команда помогает мне.

rails g scaffold_controller Property --skip-template-engine

Он сгенерировал действия контроллера, но не просмотр.

7 голосов
/ 25 ноября 2017

Рельсы 5.1

Начальная точка:

Вы создали модель без контроллера и представлений (например, через: rails generate model category)

Цель:

Обновите его до полного ресурса RESTful

Команда:

rails generate scaffold_controller category

Он заглушает контроллер леса, его семь действий RESTful и связанные представления. (Примечание. Вы можете передать имя модели CamelCased или under_scored.)

Выход:

varus@septimusSrv16DEV4:~/railsapps/dblirish$ rails generate scaffold_controller category
Running via Spring preloader in process 45681
      create  app/controllers/categories_controller.rb
      invoke  erb
      create    app/views/categories
      create    app/views/categories/index.html.erb
      create    app/views/categories/edit.html.erb
      create    app/views/categories/show.html.erb
      create    app/views/categories/new.html.erb
      create    app/views/categories/_form.html.erb
      invoke  test_unit
      create    test/controllers/categories_controller_test.rb
      invoke  helper
      create    app/helpers/categories_helper.rb
      invoke    test_unit
      invoke  jbuilder
      create    app/views/categories/index.json.jbuilder
      create    app/views/categories/show.json.jbuilder
      create    app/views/categories/_category.json.jbuilder
7 голосов
/ 24 марта 2010

Вы ищете леса.

Попытка:

script/generate scaffold Property

Это даст вам контроллер, модель, миграцию и связанные тесты. Вы можете пропустить миграцию с опцией --skip-migration. Если вы не хотите, чтобы другие, вам придется удалить их самостоятельно. Не беспокойтесь о перезаписи существующих файлов, этого не произойдет, если вы не используете --force.

Как указывает klew в комментариях, это также определяет метод тел для вас, а не только имена. Это очень полезно для использования в качестве отправной точки для вашего контроллера REST.

5 голосов
/ 31 марта 2014

В Rails 4 это rails g controller apps new create update edit destroy show index

Или rails generate controller apps new create update edit destroy show index, если вы хотите выписать полный термин:).

2 голосов
/ 24 марта 2010

скрипт / генерировать свойство rspec_scaffold

0 голосов
/ 23 февраля 2016

Одним из решений является создание сценария, который принимает один параметр, имя контроллера, и позволяет сценарию набирать всю команду за вас.


  1. Создайте новый файл, например, railsgcontroller
  2. Сделайте его исполняемым и сохраните его по пути
  3. Запустите его как: $ railsgcontroller Articles

die () {
    echo "Please supply new rails controller name to generate."
    echo >&2 "$@"
    exit 1
}

[ "$#" -eq 1 ] || die "1 argument required, $# provided"

rails g controller "$1" new create update edit destroy show index
0 голосов
/ 24 марта 2010

Нет способа (который я знаю? Что задокументировано?), Чтобы заглушить контроллер, кроме как через строительные леса Но вы могли бы сделать:

script/generate controller WhateverController new create edit update destroy show
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...