Почему неправильное вложение файлов контроллера не является ошибкой в ​​разработке? - PullRequest
1 голос
/ 05 июля 2019

У меня в настройках маршрутов есть следующее:

...
scope module: :public do
  ...
  scope module: :doctor do
    get 'vets/new', to: 'vets#new'
    ...
  end
end

Итак, вложение: public -> doctor -> vets. Случайно я поместил контроллер vets в папку public (app/controllers/public/vets_controller.rb), обернул его в модуль Public. А также поставить соответствующий вид: app/views/public/vets/new.html.slim. Это работает правильно на моем локальном компьютере, но после процесса развертывания я получаю ошибку 404.

Как включить эту проверку в режиме разработки? Мне нужно знать об этом типе проблем на стадии разработки.

Как вы думаете, почему это работает даже на моей локальной машине?

1 Ответ

1 голос
/ 05 июля 2019

Вся документация, включающая scope module: "etc", использует только один уровень вложенности.

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

Чтобы получить нужные ошибки, измените некоторые параметры конфигурации в файле development.rb. Обратите внимание, чем они отличаются от вашего production.rb файла.

# config/environments/development.rb

Rails.application.configure do
  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false

  # Show full error reports and disable caching.
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # more code
end

К

# config/environments/production.rb

Rails.application.configure do
  # Code is not reloaded between requests.
  config.cache_classes = true

  # Eager load code on boot. 
  # This eager loads most of Rails and your application in memory, 
  # allowing both threaded web servers and those relying on copy on write to perform better.
  # Rake tasks automatically ignore this option for performance.
  config.eager_load = true

  # Full error reports are disabled and caching is turned on.
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

  # more code
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...