Итак, я искал пространство имен для нескольких папок в проекте.Ошибка маршрутизации для двухуровневого контроллера глубины (неинициализированная константа)
Когда пространство имен глубоко 1-слойные, у меня нет никаких проблем, но как только я рамка маршрута вниз в другую папку глубже (и соответствующий контроллер папок/имена), я получаю эту ошибку:
Routing Error uninitialized constant Individuals
Что я имею в виду глубину папки, принимает tyres_controller.rb
, и этот слой глубиной в проекте:
1-Layer
app/controllers/<1st_level_deep>/tyres_controller.rb
2-Layers
app/controllers/<1st_level_deep>/<2nd_level_deep>/tyres_controller.rb
Вот два сценария:
1-Layer Deep Namespaced Контроллер
app/controllers/tyre_checks/tyre_checks_controller.rb
module TyreChecks
class TyreChecksController < ApplicationController
...
end
end
routes.rb
scope module: 'tyre_checks' do
resources :tyre_checks, only: [:new, :create] do
end
end
...
match '/tyre-checks', to: 'tyre_checks/tyre_checks#new', via: :get, as: :start_tyre_check
2-слоя Глубокий Namespaced Контроллер
app/controllers/tyre_checks/individuals/tyre_checks_controller.rb
module TyreChecks
module Individuals
class TyreChecksController < ApplicationController
...
end
end
end
routes.rb
scope module: 'tyre_checks' do
scope module: 'individuals' do
resources :tyre_checks, only: [:new, :create] do
end
end
end
...
match '/individuals/tyre-check', to: 'individuals/tyre_checks/tyre_checks#new', via: :get, as: :start_tyre_check
ЕСЛИ вы просили меня GUESS
- Я думаю, что это что-то делать с этой частью и тем, как Rails интерпретирует дополнительные
/
в запросе в концеindividuals
:
to: 'individuals/tyre_checks/tyre_checks#new', via: :get, as: :start_tyre_check
вы можете попробовать определения контроллера, как 'класса TyreChecks :: Частным лицам :: TyreChecksController
Sajan