'Admin'네임 스페이스에 'ActivityLogsController'컨트롤러가 있습니다. rails server
을 실행하면 예상대로 작동하며 /admin/activity_logs과 같은 경로에 액세스 할 수 있습니다. RSpec 컨트롤러 스펙을 실행하면 모든 액션 테스트가 실패를 반환합니다. 예를 들면 다음과 같습니다.Rails 앱은 정상적으로 실행되지만 RSpec은 경로와 일치하지 않습니다.
Failure/Error: get :index
ActionController::UrlGenerationError:
No route matches {:action=>"index", :controller=>"activity_logs"}
OK,이 표시는 약간 이상하게 보입니다. 컨트롤러 값이 네임 스페이스로 표시됩니다. 그것은 분명히 문제의 일부입니다. rake routes
나에게 서버가 제대로 실행 사실을 반영 예상 네임 스페이스 경로를 제공 실행, 물론
namespace :admin do
resources :activity_logs, except: [:show, :destroy]
end
:
routes.rb 제대로 네임 스페이스 activity_logs의 항목이 있습니다.
컨트롤러는 'app/controllers/admin/activity_logs_controller.rb'에 정의되어 있으며 해당 네임 스페이스를 반영합니다. 다음과 같이 정의됩니다 :
class Admin::ActivityLogsController < ApplicationController
...
end
따라서 RSpec 컨트롤러 사양이 경로를 올바르게 해석하지 못하는 이유는 무엇입니까?
나는 다른 질문에서 필요한 것을 찾지 못했을 때를 대비해이 답변을 게시하고 있습니다.