2010-11-18 4 views
6

레일 3.0에서이 작업을 수행하는 방법을 알 수 없습니다. 나는 컨트롤러, products 및 조치, search 있고, routes.rb에서 나는비 안정 경로 구성

resources :products, :collection => {:search => :post } 

match 'products/search' => 'products#search', :via => [:get, :post] 

및 기타 여러 설정을 시도했습니다,하지만 난 products/search에 액세스 할 때마다 난 여전히 오류가 발생 ID가 search 인 제품을 show으로 찾아 볼 수 없습니다. 누구든지 내가 뭘 잘못하고 있는지 알아?

감사합니다.

resources :products do 
    collection do 
    get :search 
    post :search 
    end 
end 

이 당신이 중 하나 GET 또는 POST 요청을 사용하여 ProductsController#search 작업에 액세스 할 수 있습니다 : 레일 3에서

답변

10

끝났습니다.

resources :products do 
    collection do 
    match 'search', :via => [:get, :post] 
    end 
end 

양자 택일로, 당신은 할 수 :

resources :products do 
    match 'search', :on => :collection, :via => [:get, :post] 
end 

는 에지 가이드의 Rails Routing from the Outside In 자세한 특별히 자세한 내용은 :

+1

와우, "외부에서 라우팅"페이지의 해당 섹션을 놓친 방법을 모르겠습니다. 굉장해. 감사합니다, 얘들 아. – user508546

+0

문제가 없습니다. 우리가 도울 수있어서 기뻐. =) 우리 둘다 대답으로 표시 할 수 없다는 것은 너무 나쁘다. = D – John

4

, collection 이제 블록입니다.

관련 문제