2011-08-25 5 views
0

조금 애매한 질문을 드리겠습니다. 그러나 여기에 있습니다.Rails 2.3.8 응용 프로그램 건너 뛰기 컨트롤러

기존 Rails 2.3.8 응용 프로그램을 유지 관리하고 있습니다. 나는 이상한 행동을 알아 차렸는데, 먼저 app/views/controller_x/action_x.rhtml이 있다고 주어진 어떤 오류없이 응용 프로그램이 controller_x/action_x을 제공했지만 action_x의 정의가 controller_x.rb에 없다. 그런 다음 잠시 후 서비스가 중단 된 후 다시 요청을 처리하도록 controller_x.rbaction_x 빈 기능을 만들어야했습니다.

어떤 문제가 발생할 수 있습니까? 컨트롤러를 건너 뛰는 동안 어떻게 액션 뷰를 제공 할 수 있습니까?

업데이트 : 지금 발생하는 오류는 :

ArgumentError in ControllerXController#action_x 

no id given 

감사로서 당신이 (action_x.rhtml)에 정의 된 해당보기 파일을 가지고

+0

이 컨트롤러를 보여주세요. –

+0

이름이 지정된 경로를 사용하는 경우 왜 이런 일이 일어날 지 모르겠지만 어떤 경우이든 IMO는 비어있는 경우에도 컨트롤러에 조치를 취해야합니다. 읽을 수있는 코드보다 더 마음에 드는 것이 아닙니다. :) – mark

답변

2

, 당신은을 정의 할 필요가 없습니다 액션 (뷰를 정의하는 것이 좋습니다. 따라서 다른 사람들이 프로젝트에서 진행중인 작업을 더 쉽게 이해할 수 있습니다).

어떤 오류가 발생합니까? routes.rb 파일의 모습은 어떻습니까?

업데이트 : :이 작업은 매개 변수가 필요하므로 다음과 같이 작동합니다. http://localhost:3000/controller_x/action_x/1. 경로 파일에 map.connect ':controller/:action/:id' 만 있으십니까?

+0

표준 경로'map.connect '를 사용하고 있습니다 : controller/: action/: id'', 질문은 주어진 오류를 보여주기 위해 업데이트되었습니다, 감사합니다 – wael34218

+0

나는이 기본 경로가 모든 것을 잡을 것이라고 믿습니다. // guides.rubyonrails.org/v2.3.8/routing.html#the-default-routes and http://guides.rubyonrails.org/v2.3.8/routing.html#default-routes – wael34218

+0

예,하지만 정의한 경우 기본 경로보다 더 구체적인 경로이며 요청 URL과 일치하는 경우 라우팅 엔진은 대신이를 사용합니다. – Behrang