Резюме: в процессе разработки запросы направляются на workouts_controller.rb
, а в производстве - на workouts_controllerPrev.rb
В приложении Rails 5.2.3 у меня есть файл workouts_controller.rb
в папка controllers/
с первой строкой:
WorkoutsController < ApplicationController
Я взял копию workouts_controller.rb
(в качестве быстрой справочной резервной копии), которую я переименовал в workouts_controllerPrev.rb
и сохранил в папке controllers/
.
Затем я ввел некоторые новые функции в workouts_controller.rb
. Я протестировал новую функциональность локально (она работала, как ожидалось, в процессе разработки), а затем я развернул ее на Heroku (v 7.42.0) (для производства).
Новая функциональность, однако, не работала в производственной среде. После некоторой отладки я обнаружил, что при производстве WorkoutsController class
в workouts_controllerPrev.rb
обрабатывает вызовы Workouts controller
(а не Workouts controller
, определенный в workouts_controller.rb
(как ожидалось и как происходит в разработке).
Я сделал более драматичное изменение имени c на workouts_controllerPrev.rb
, изменив его на Xwurkouts_controllerPrev.rb
, и изменил имя класса в этом файле на XWurkoutsController
повторно развернуто, и все сработало нормально.
Что здесь происходит? Почему Rails по-разному работает в этом отношении в двух средах? Это ошибка или неудивительное последствие плохой практики, когда неиспользуемые файлы слоняются по сторонам? Если ошибка, куда я должен сообщить об этом? Я с использованием SQLite в разработке и PostGreSQL в производстве, но я не вижу, что это может быть проблемой базы данных? Рабочий веб-сервер - Puma.
Спасибо за любые указания
Daniel