2009-08-14 6 views
1

상황은 간단합니다. Rails 2.3.3에서는 "Staff"네임 스페이스가 있고 거기에있는 컨트롤러는 StaffController에서 상속받습니다. StaffController 자체는 스태프 이름 공간의 루트를 처리합니다.레일 루트 생산 변경

map.namespace :staff do |staff| 
    staff.root :controller=>'staff', 
       :action=>'index' 
    # ... 
end 

개발 모드에서 제대로 작동합니다. 생산 모드에서, 그러나,이 나누기 : 직원 네임 스페이스에 잘못 렌더링과 같은 특정 헬퍼와 ​​같은 다른 문제들

uninitialized constant Staff::StaffController 

합니다.

왜 개발 및 생산 방식이이 문맥에서 다르게 동작하며이를 수정하려면 어떻게해야합니까?

답변

1

생산 및 개발 모드에서 rake routes을 실행하면 어떻게됩니까?

이렇게하면 호스팅 스택 대 프레임 워크/코드 문제를 좁히는 데 도움이 될 수 있습니다.

+0

관련 행은 staff_root,/staff와 같습니다. {: controller => "staff/staff", : action => "index"} - 제작 과정에서 결함이 아닐 수도 있다는 생각이 들지만,이 설정이 전혀 작동하지 않는 개발의 결점이 있습니다. 어쩌면 직원의 루트 페이지를 다른 컨트롤러로 옮겨서 어떤 일이 일어나는지 보도록하겠습니다. – Matchu

+0

좋아, 좋아. "staff/staff"를 가리키는 두 경로의 경로가 내가 필요한 곳을 파악하는 데 도움이되었다는 것을 알았고 이제 직원 네임 스페이스 루트는 이제 자체 컨트롤러를가집니다. 감사! – Matchu

0

프로덕션 환경은 어떻게 생겼습니까? 승객/아파치? 최신 버전 (2.2.4)? 이와 같은 불일치는 일반적으로 코드 문제와는 달리 스택 문제 였으므로 거기에서 시작하는 것이 어려울 수 없습니다.

+0

실제 배포 서버에는 승객이지만 WEBrick에서도 동일한 오류가 발생합니다. – Matchu

0

그것은 조심 이미이 문제를 해결 한 것 같다,하지만 두 가지 : 것 (에 WEBrick/잡종 대 가장 좋은 방법을 아파치를 사용하는 경우

  1. 일부 미묘한 변화가 일어날 수 실제로 설치 아파치 + 승객 현지 개발

  2. 조건부 경로를 구현하고 동시에 데이터베이스 마이 그 레이션을 수행 할 때 특정 상황에서 발을 쏠 수 있습니다 (최선의 방법은 다음 조건을 충족하는지 확인하는 것입니다. DB 마이그레이션. 이것은 서버를 재시작해야 할 수도 있습니다. 로드 및 마이 그 레이션,하지만 여전히보다 나은 대안.