2010-12-02 3 views
0

내 homecontroller가 있습니다내 경로에 리소스가 있습니다.하지만 rspec은 경로가 정의되지 않았다고 말하고 있습니까?

def about() 
end 

그리고 난 '에 대해'GET 않는 RSpec에 검사를하며와 일치하는 경로가 없다는 것을 말하는 실패합니다.

resources :home 

또는 내가 명시 적으로 홈 컨트롤러의 각 조치를 명시해야합니까 :

이 컨트롤러에서 모든 작업을지도하지 않는 이유는 무엇입니까?

resources :homes do 
    collection do 
    match "about" => "homes#about", :as => "about" 
    end 
end 

그럼 당신은 또한 추가 about_homes_path/URL 헬퍼를해야합니다 : 당신은 추가 작업을하려는 경우 당신에게 컨트롤러에 대한 7 개 CRUD 방법을 제공합니다

답변

2

resources :home은 기본 RESTful 경로 (index, show, new, create, edit, update 및 destroy)를 설정합니다. 추가 경로를 지정해야합니다. 이것은 당신의 길 '/ 홈/약'을 줄 것이다

resources :home 
    collection do 
    get 'about' 
    end 
end 

:이처럼 지정할 것 있도록, 간단한 수집 경로를 추가하는 것 같습니다. 난 당신이 레일 2.X에 있다면이 레일 3. 가정과 같이 그것을 :

map.resources :home, :collection => {:about => :get} 

그리고 명령 줄에서

, 당신은 항상 당신이 명령을 사용할 수 있습니다 어떤 경로 볼 수 있습니다

rake routes 

이 정보가 도움이 되었기를 바랍니다.

편집 : 당신이 기본 경로를 원하는 경우,이를 추가 할 수 있습니다

match ':controller(/:action(/:id))' 

이 어떤 일반적인 요청과 일치하는 기본 경로입니다.

FULL ARTICLE : Routing in Rails 3는 자체의 짐승입니다. 이 요즘에 관한 질문을 많이 있었다, 그래서 나는 다른 사람 도움이 코드 샘플과 함께 매우 상세한 기사를 만들었습니다

Routing in Ruby on Rails 3

나는 동반자 놀러 다운로드 할 수있는 3 응용 프로그램을 레일 생성을 뿐만 아니라, 함께 : 당신은 질문이있는 경우

https://github.com/kconrails/rails3_routing

, 내 사이트를 공격하고 문의하시기 바랍니다. 감사!

+0

예 레일 3, 감사합니다! – Blankman

+0

거기에 자동으로 모든 것을 연결하는 방법이 있어야합니다, 놀랄 방법이 없습니다 ... – Blankman

+0

이 URL 도우미 about_homes_path을주지 않습니다? – Blankman

0

자원은, 다음과 같은 일을 할 필요가 유효한.

관련 문제