Создайте контроллер со всеми функциями RESTful


Я пытаюсь создать контроллер со всеми RESTful действия заглушены. Я читал в текст ссылки что все, что мне нужно было сделать, это использовать вызов генератора только с именем контроллера, которое я получу. Итак, я запустил "script/generate Rspec_controller Properties" и получил пустой контроллер.

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

10 77

10 ответов:

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

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

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

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

rails g scaffold_controller Property

в рельсах 3 есть также rails generate scaffold_controller .... Подробнее здесь.

редактировать (из-за некоторых комментариев) : оригинальный вопрос был в 2010 году-следовательно, ответ не для рельсов 4, а для рельсов 2!!

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

script/generate scaffold controller Properties

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

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

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

rails g scaffold_controller Property

в Rails 4/5 следующая команда делает трюк для меня.

rails g scaffold_controller Property --skip-template-engine

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

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

попробуй:

script/generate scaffold Property

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

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

рельсы 5.1

отправная точка:

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

цель:

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

:

rails generate scaffold_controller category

он заглушает контроллер лесов, его семь спокойных действий и связанных с ними представлений. (Примечание: Вы можете либо передать название модели 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

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

или rails generate controller apps new create update edit destroy show index Если вы хотите записать весь срок :).

script / generate Rspec_scaffold Property

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

script/generate controller WhateverController new create edit update destroy show

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


  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 "" new create update edit destroy show index