Не создавать папку вида на рельсах, генерирующих контроллер
Есть ли способ с обычной конфигурацией генераторов отключить создание папок вида и шаблонов действий при запуске rails generate controller
?
Я нигде не могу найти вариант, и код здесь не показывает мне никаких указателей.
Скорее всего, в какой-то момент мы собираемся создать наши собственные контроллеры/генераторы ресурсов для нашего API, но мне было любопытно, есть ли способ отключить эту досаду тем временем.
Ответы
Ответ 1
Это не хорошо документированная функция, но попытайтесь добавить --skip-template-engine
(псевдоним --no-template-engine
) в команду.
rails generate controller foo bar --skip-template-engine
демо на фиктивном приложении:
rails g controller my_controller index show --no-template-engine
create app/controllers/my_controller_controller.rb
route get "my_controller/show"
route get "my_controller/index"
invoke test_unit
create test/functional/my_controller_controller_test.rb
invoke helper
create app/helpers/my_controller_helper.rb
invoke test_unit
create test/unit/helpers/my_controller_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/my_controller.js.coffee
invoke scss
create app/assets/stylesheets/my_controller.css.scss
Ответ 2
Чтобы пропустить просмотры от вашего контроллера, отключите механизм шаблона.
Однажды:
rails g controller ControllerName action1 action2 --skip-template-engine
Обратите внимание, что каждый параметр --skip
также имеет псевдониму --no
.
По умолчанию:
# config/application.rb
config.generators do |g|
g.template_engine false
end
# OR
config.generators.template_engine = false
Если у вас есть приложение только для API (без интерфейса), вы также можете пропустить активы и помощники от создания ваших контроллеров.
Однажды:
rails g controller api/users --no-helper --no-assets --no-template-engine
По умолчанию:
# config/application.rb
config.generators do |g|
g.assets false
g.helper false
g.template_engine false
end
# OR
config.generators.assets = false
config.generators.helper = false
config.generators.template_engine = false
Отключение активов пропускает таблицы стилей и javascripts. Если вы хотите просто пропустить один, используйте --no-stylesheets
или --no-javascripts
или в config/application.rb
используйте:
config.generators.stylesheets = false
config.generators.javascripts = false
Если ваша конфигурация по умолчанию пропускает что-то из сгенерированного (например, активы и помощники), но вы нуждаетесь в них в одном случае, вы можете сгенерировать их так:
rails g controller foo --helper --assets --skip
где --skip
пропускает файлы, которые уже существуют.
Ответ 3
Просто подумал, что я попытаюсь подчеркнуть флаг -skip-template-engine, чтобы увидеть, работает ли он в генераторе, и это сработало очарование! Нет шаблонов представлений, генерируемых командой bin/rails g controller
в приложении Rails 4.2.
Пытаться:
config.generators do |g|
g.template_engine false
end
Немного поздно я знаю, но эти вещи остаются в Google! ;)
Ответ 4
Если вы создаете API без интерфейса, вы можете продолжить использование rails new --api
. Тем не менее, я не рекомендую этот вариант, если вы планируете создать интерфейс (например, одностраничное приложение), потому что он отключает много вещей, включая конвейер активов.