Я пытаюсь создать контроллер со всеми заглушенными действиями RESTful. Я читал в Wikibooks - Ruby on Rails, что все, что мне нужно было сделать, это вызвать генератор с именем контроллера, и я бы получил именно это. Итак, я побежал, script/generate rspec_controller Properties
но получил пустой контроллер.
Будем очень признательны за любые другие предложения.
Ответы:
Я не знаю об автоматическом способе сделать это, но если вы это сделаете:
Все они будут созданы для вас
Обновление для Rails 4
источник
route get "mycontroller/create"
(создать должно быть сообщение)В Rails 3 тоже есть
rails generate scaffold_controller ...
. Больше информации здесь .источник
rails g controller Foos create
приведет к созданию маршрута, дляget '/create'
которого вообще не является RESTful.РЕДАКТИРОВАТЬ (из-за некоторых комментариев) : исходный вопрос был в 2010 году - следовательно, ответ НЕ для RAILS 4, а для рельсов 2 !!
попробуйте использовать строительные леса.
Раздел официальной документации по Ruby On Rails
Я уверен, что вы можете найти больше информации, если выполните поиск в Google по рельсам. Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: для RAILS 4
rails g scaffold_controller Property
источник
rails g scaffold_controller Property
работает и в rails 3.2. Это создаст PropertiesController со ВСЕМИ 7 действиями RESTful по умолчанию и их соответствующими представлениями без модели.В Rails 4/5 мне помогает следующая команда.
Он генерировал действия контроллера, но не представление.
источник
Рельсы 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
источник
Вы ищете строительные леса.
Пытаться:
Это даст вам контроллер, модель, миграцию и соответствующие тесты. Вы можете пропустить миграцию с помощью опции
--skip-migration
. Если вам не нужны другие, вам придется удалить их самостоятельно. Не беспокойтесь о перезаписи существующих файлов, этого не произойдет, если вы не используете--force
.Как указывает klew в комментариях, это также определяет для вас тела методов , а не только имена. Его очень полезно использовать в качестве отправной точки для вашего контроллера REST.
источник
В Rails 4 это
rails g controller apps new create update edit destroy show index
Или
rails generate controller apps new create update edit destroy show index
если хотите выписать полный срок :).источник
rails g scaffold_controller apps
в Rails 4скрипт / сгенерировать свойство rspec_scaffold
источник
Нет никакого способа (о котором я знаю? Который задокументирован?) Отключить контроллер, кроме как через строительные леса. Но вы могли:
источник
Одним из решений является создание сценария, который принимает один параметр, имя контроллера, и позволяет сценарию вводить всю команду за вас.
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
источник