2010-11-26 229 views
2

我無法將用戶重定向到我想創建新的「服務」資源後所需的頁面。Rails 3嵌套資源路由錯誤

這裏的routes.rb中:

resources :wsps do 
    resources :services 
end 

HTML表單:

<%= form_for([@wsp,@service]) do |f| %> 

Services_controller.rb:

def new 
    @wsp = current_wsp 
    @service = @wsp.services.build 
    respond_to do |format| 
     format.html # new.html.erb 
     format.xml { render :xml => @service } 
    end 
    end 

def create 
    @wsp = current_wsp 
    @service = @wsp.services.build(params[:service]) 
    if @service.save 
     redirect_to wsp_service_path 
    end 
    end 

的wsp_service_path進入/ WSPS/1 /服務錯誤:

No route matches {:action=>"destroy", :controller=>"services"} 

我在做什麼錯了?爲什麼我不能使用「wsp_service_path」?

謝謝。

回答

3

您可以使用wsp_service_path(因爲您在控制器中應該使用wsp_service_url)。所有你缺少的是參數。 wsp_service_path(或_url)將期待兩個參數:一個wsp和一個服務。一旦你提供這兩個,它的工作。

redirect_to wsp_service_url(@wsp, @service)