2010-11-27 8 views
1

ich eine verschachtelte Route haben, wie:Rails 3 verschachtelte Routen Controller Zugriff

resources :wsps do 
    member do 
    get :location 
    get :password 
    end 

    resources :services 
    end 

ich alle Pfade zugreifen können (zB: new_wsp_service_path) über de services Ansichten und Dienstesteuerung, kann ich aber nicht das gleiche mit die WSP Ansichten. Es heißt es erkennt die Aktion "neu" nicht an.

Ich würde gerne wissen, wie kann ich den new_wsp_service_path auf den Wsps Ansichten auch verwenden.

Ich habe versucht, dies auf den WSP-Controller zeigen hinzufügen, aber Korrekturen immer noch nicht:

def show 
    @wsp = Wsp.find(params[:id]) 
    @title = @wsp.name 
    @services = @wsp.services 
    @page_name = "overview" 
    respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @services } 
    end 
    end 

Dank.

Antwort

1

Stellen Sie sicher, dass Sie ein Objekt Wsp übergeben, wenn Sie den Pfadhelfer aufrufen. Öffnen Sie die Schienen Konsole (rails c) und versuchen diese ::

app.new_wsp_service_path  # => ERROR! 
app.new_wsp_service_path(1) # => should work 
@wsp = ...      # get a Wsp record 
app.new_wsp_service_path(@wsp) # => should work 

ich in diesen Fehler führen oft, wenn ich vergessen, einen Datensatz zu den eingebetteten Weg zu passieren. Wenn das Ihr Problem nicht löst, schreiben Sie bitte die Ausgabe der obigen Befehle und stellen Sie sicher, dass Ihre Route mit rake routes | grep new_wsp_service eingerichtet ist.

Verwandte Themen