2012-01-15 3 views
2

두려운 catchall 라우트 인 match '/:controller(/:action(/:id))'을 사용하는 Rails 3.0 프로젝트를 인수했습니다. 나는 그것을 제거하고 적절한 정의 된 경로로 대체하고 싶습니다. 그러나 많은 수의 컨트롤러가 있으며 아무 것도 깨지 않고이를 수행하기를 원합니다. 그래서 어떤 컨트롤러 액션이 catch-all에 의존하는지 확인하기 위해 프로젝트를 감사해야합니다. 특정 컨트롤러에 routes.rb 항목이 어떤 동작을했는지 확인하기 위해 모든 컨트롤러를 검사 할 수있는 도구 나 방법이 있습니까?레일에서 캐치 올 루트를 제거하는 기술

답변

3

약 한 달 전에 똑같은 문제가있었습니다. 내가 아는 쉬운 대답이 없습니다. 특히 테스트가 잘 안된 응용 프로그램 인 경우에 특히 그렇습니다. 내가 찾은 가장 좋은 방법은 다음과 같습니다.

  1. 블랙홀 경로를 제거하십시오.
  2. rake routes을 실행하고 각 컨트롤러와 비교하십시오.
  3. 컨트롤러를 사용하여 필요한 모든 것을 테스트하고 필요한 경우 누락 된 경로를 추가하십시오.
  4. 반복.

행운을 빈다.