Я пишу плагин для приложения Rails (Discourse) и настраиваю маршруты следующим образом:
Discourse::Application.routes.append do
root to: 'custom#show'
end
К сожалению, приложение Rails уже определяет серию корневых маршрутов в своем файле routes.rb
. Поскольку они указаны первыми, они имеют приоритет в соответствии с «Рельсы, идущие извне: 2.2 CRUD, глаголы и действия» .
Тем не менее, я заметил странную запись в логгере при изменении настройки маршрута следующим образом:
Discourse::Application.routes.prepend do
root to: 'custom#show'
end
Используя prepend
вместо append
, вывод журнала Rails теперь запрашивает это при запросе корневого пути /
:
INFO -- : Started GET "/" …
INFO -- : Processing by CustomController#show as HTML
Однако действие CustomController#show
фактически не вызывается. Приложение ведет себя точно так же, как и раньше. Как я могу заставить Rails вместо этого вызывать этот контроллер и действие, как утверждает регистратор?
(Это своего рода дополнительный вопрос к «Для маршрутов с одинаковыми шаблонами URI, который сопоставляется первым?» )