Так что я только начинаю с RoR и полагаю, что я делаю базовый блог с конечными точками API. Проблема заключается в том, что мои запросах API, кажется, направляются к неправильному контроллеру,Rails namespaced route to wrong Controller
У меня есть следующий в моем routes.rb
Blog::Application.routes.draw do
namespace :api do
namespace :v1 do
resources :articles
end
end
end
У меня также есть controllers/api/v1/articles_controller.rb
, который имеет следующее содержание:
module API
module V1
class ArticlesController < ApplicationController
respond_to :json
def index
respond_with Article.all
end
end
end
end
Моя логика говорит, что, когда я ударил http://localhost:3000/api/v1/articles
, это должно быть контроллер реагировать, однако фактический контроллер, который отвечает это один в корне контроллеров (controllers/articles_controller.rb
), а не один в /api/v1
путь. Когда я удалю контроллер, который на самом деле отвечает, вместо этого я получу uninitialized constant Api::V1::ArticlesController
.
Даже rake routes
дает мне ожидаемые маршруты, однако на самом деле удары по этим оконечным точкам не удаются. Выход rake routes
является следующее:
api_v1_articles GET /api/v1/articles(.:format) api/v1/articles#index
POST /api/v1/articles(.:format) api/v1/articles#create
new_api_v1_article GET /api/v1/articles/new(.:format) api/v1/articles#new
edit_api_v1_article GET /api/v1/articles/:id/edit(.:format) api/v1/articles#edit
api_v1_article GET /api/v1/articles/:id(.:format) api/v1/articles#show
PUT /api/v1/articles/:id(.:format) api/v1/articles#update
DELETE /api/v1/articles/:id(.:format) api/v1/articles#destroy
Единственный подобный вопрос я нашел на ТАК nested namespace route going to wrong controller однако, нет ответа принимается там, и это был год. Возможно, еще одна попытка поможет решить эту проблему.
Я бы никогда не заметил это сам. благодаря – zatatatata