2010-11-30 4 views
6

컨트롤러 "Apps"가 있습니다. 이것은 하나의 액션 "인덱스"로 구성됩니다. 지금은 "구매"라는 새로운 작업을 추가 할 :새 레일 작성 액션이 작동하지 않습니까?

def buy 
    respond_to do |format| 
    format.html 
    end 
end 

내가보기에 buy.html.erb 추가를하지만/응용 프로그램/구매에 검색 할 때, 나는 다음과 같은 메시지 얻을 :

Unknown action - The action 'show' could not be found for AppsController 
을 사전에

match '/apps/buy', :controller => 'apps', :action => 'buy' 

감사 : 경로에

나는이 추가!

답변

16

URL이 표준 /apps/:id 경로에 걸렸으며, 귀하의 경로에도 resources :apps이 있다고 가정합니다. 경로 그들이 정의 된 순서대로 실행됩니다 염두에

match '/apps/buy', :controller => 'apps', :action => 'buy' 
resources :apps 

곰, 그래서 특정 사람은 일반적으로 선행해야

은 간단하게 먼저 구매 경로를 배치합니다.

@Ryan 자원에 수집 경로를 추가하는 제안 같이 간단한 방법 :

resources :apps, :collection => { :buy => :get } 
+4

은 또한 당신의 '자원 수집 경로로'buy' 액션을 추가 apps'합니다. –

+0

@ Ryan 좋은 지적은 바람직합니다. –

+0

정말 고마워요! – Tronic

관련 문제