2010-11-26 18 views
2

Ich bin nicht in der Lage, den Benutzer auf die Seite, die ich will, nachdem er eine neue "Service" Ressource erstellt.Rails 3 verschachtelte Ressourcen Route Fehler

Hier ist der routes.rb:

resources :wsps do 
    resources :services 
end 

Die HTML-Formular:

<%= 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 

Die wsp_service_path zu geht/WSP/1/Dienstleistungen und der Fehler:

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

Was mache ich falsch? Warum kann ich "wsp_service_path" nicht verwenden?

Vielen Dank.

Antwort

3

Sie können wsp_service_path verwenden (während Sie sollten wsp_service_url verwenden, da Sie in einem Controller sind). Alles was dir fehlt, sind Argumente. wsp_service_path (oder _url) werden zwei Argumente erwarten: ein WSP und ein Dienst. Sobald Sie diese beiden zur Verfügung stellen, funktioniert es.

redirect_to wsp_service_url(@wsp, @service) 
Verwandte Themen